]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
PTR_ERR should be called before its argument is cleared.
authorJulia Lawall <Julia.Lawall@lip6.fr>
Thu, 2 Feb 2012 15:52:54 +0000 (07:52 -0800)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 21 Feb 2012 17:06:10 +0000 (09:06 -0800)
The semantic match that finds this problem is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@@
expression e,e1;
constant c;
@@

*e = c
... when != e = e1
    when != &e
    when != true IS_ERR(e)
*PTR_ERR(e)
// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Reported-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
kernel/rcutorture.c

index ed1c72bd9c09eb37eba09ebea6119ba9d8830bb3..a89b381a8c6eee184bbeb00c0b11e0b6634c7959 100644 (file)
@@ -1465,12 +1465,15 @@ rcu_torture_onoff(void *arg)
 static int __cpuinit
 rcu_torture_onoff_init(void)
 {
+       int ret;
+
        if (onoff_interval <= 0)
                return 0;
        onoff_task = kthread_run(rcu_torture_onoff, NULL, "rcu_torture_onoff");
        if (IS_ERR(onoff_task)) {
+               ret = PTR_ERR(onoff_task);
                onoff_task = NULL;
-               return PTR_ERR(onoff_task);
+               return ret;
        }
        return 0;
 }