]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
misc: sgi-gru: fix return of error
authorSudip Mukherjee <sudipm.mukherjee@gmail.com>
Mon, 21 Sep 2015 10:18:19 +0000 (15:48 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 4 Oct 2015 11:55:59 +0000 (12:55 +0100)
If kzalloc() fails then gms is NULL and we are returning NULL, but the
functions which called this function gru_register_mmu_notifier() are not
expecting NULL as the return. They are expecting either a valid pointer
or the error code in ERR_PTR.

Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
Acked-by: Dimitri Sivanich <sivanich@sgi.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/sgi-gru/grutlbpurge.c

index 757a8e9aabdba90348b1dc6c666929868ec4723f..e936d43895d2579965c9a8d6127cc9111c9cc716 100644 (file)
@@ -306,16 +306,16 @@ struct gru_mm_struct *gru_register_mmu_notifier(void)
                atomic_inc(&gms->ms_refcnt);
        } else {
                gms = kzalloc(sizeof(*gms), GFP_KERNEL);
-               if (gms) {
-                       STAT(gms_alloc);
-                       spin_lock_init(&gms->ms_asid_lock);
-                       gms->ms_notifier.ops = &gru_mmuops;
-                       atomic_set(&gms->ms_refcnt, 1);
-                       init_waitqueue_head(&gms->ms_wait_queue);
-                       err = __mmu_notifier_register(&gms->ms_notifier, current->mm);
-                       if (err)
-                               goto error;
-               }
+               if (!gms)
+                       return ERR_PTR(-ENOMEM);
+               STAT(gms_alloc);
+               spin_lock_init(&gms->ms_asid_lock);
+               gms->ms_notifier.ops = &gru_mmuops;
+               atomic_set(&gms->ms_refcnt, 1);
+               init_waitqueue_head(&gms->ms_wait_queue);
+               err = __mmu_notifier_register(&gms->ms_notifier, current->mm);
+               if (err)
+                       goto error;
        }
        if (gms)
                gru_dbg(grudev, "gms %p, refcnt %d\n", gms,