diff options
author | Sebastian Ott <sebott@linux.vnet.ibm.com> | 2013-04-25 07:03:18 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2013-04-26 03:07:17 -0400 |
commit | fff60fabc71c41bd1bd4beb4fdd735bb8e01096c (patch) | |
tree | 7ce1be7df2d0c10adf9be0ba921673a13d8125a6 | |
parent | bd86055fc938493259a15dc00ee77435b4d2e83f (diff) |
s390/scm_blk: fix memleak in init function
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>
-rw-r--r-- | drivers/s390/block/scm_blk.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/s390/block/scm_blk.c b/drivers/s390/block/scm_blk.c index e9b9c8392832..b303cab76a7f 100644 --- a/drivers/s390/block/scm_blk.c +++ b/drivers/s390/block/scm_blk.c | |||
@@ -465,7 +465,7 @@ static int __init scm_blk_init(void) | |||
465 | scm_major = ret; | 465 | scm_major = ret; |
466 | ret = scm_alloc_rqs(nr_requests); | 466 | ret = scm_alloc_rqs(nr_requests); |
467 | if (ret) | 467 | if (ret) |
468 | goto out_unreg; | 468 | goto out_free; |
469 | 469 | ||
470 | scm_debug = debug_register("scm_log", 16, 1, 16); | 470 | scm_debug = debug_register("scm_log", 16, 1, 16); |
471 | if (!scm_debug) { | 471 | if (!scm_debug) { |
@@ -486,7 +486,6 @@ out_dbf: | |||
486 | debug_unregister(scm_debug); | 486 | debug_unregister(scm_debug); |
487 | out_free: | 487 | out_free: |
488 | scm_free_rqs(); | 488 | scm_free_rqs(); |
489 | out_unreg: | ||
490 | unregister_blkdev(scm_major, "scm"); | 489 | unregister_blkdev(scm_major, "scm"); |
491 | out: | 490 | out: |
492 | return ret; | 491 | return ret; |