s390/scm_blk: fix memleak in init function
authorSebastian Ott <sebott@linux.vnet.ibm.com>
Thu, 25 Apr 2013 11:03:18 +0000 (13:03 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Fri, 26 Apr 2013 07:07:17 +0000 (09:07 +0200)
If the allocation of a single request fails the already allocated
requests will not be freed.

Reviewed-by: Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/block/scm_blk.c

index e9b9c83..b303cab 100644 (file)
@@ -465,7 +465,7 @@ static int __init scm_blk_init(void)
        scm_major = ret;
        ret = scm_alloc_rqs(nr_requests);
        if (ret)
-               goto out_unreg;
+               goto out_free;
 
        scm_debug = debug_register("scm_log", 16, 1, 16);
        if (!scm_debug) {
@@ -486,7 +486,6 @@ out_dbf:
        debug_unregister(scm_debug);
 out_free:
        scm_free_rqs();
-out_unreg:
        unregister_blkdev(scm_major, "scm");
 out:
        return ret;