]> rtime.felk.cvut.cz Git - can-eth-gw-linux.git/commitdiff
Simplify refcount handling
authorMichal Sojka <sojkam1@fel.cvut.cz>
Thu, 20 Dec 2012 14:13:36 +0000 (15:13 +0100)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Thu, 20 Dec 2012 14:20:37 +0000 (15:20 +0100)
net/can/canethgw.c

index 17753640814d0277c8baf4fd45eff675aed38270..62b711f999bc0161accf0b59b45c64f4b3d09847 100644 (file)
@@ -177,14 +177,14 @@ static int cegw_thread_start(void *data)
        struct cegw_job *job = (struct cegw_job *)data;
 
        kref_init(&job->refcount);
-       kref_get(&job->refcount);
 
        task = kthread_run(cegw_udp2can, data, "canethgw_udp2can");
        if (IS_ERR(task)) {
-               kref_sub(&job->refcount, 2, cegw_job_release);
+               kref_put(&job->refcount, cegw_job_release);
                return -ENOMEM;
        }
 
+       kref_get(&job->refcount);
        task = kthread_run(cegw_can2udp, data, "canethgw_can2udp");
        if (IS_ERR(task)) {
                cegw_thread_stop(job);