lightnvm: missing free on init error
authorMatias Bjørling <m@bjorling.me>
Fri, 20 Nov 2015 12:47:54 +0000 (13:47 +0100)
committerJens Axboe <axboe@fb.com>
Fri, 20 Nov 2015 15:33:16 +0000 (08:33 -0700)
If either max_phys_sect is out of bound, the nvm_dev structure is not
freed.

Signed-off-by: Matias Bjørling <m@bjorling.me>
Signed-off-by: Jens Axboe <axboe@fb.com>
drivers/lightnvm/core.c

index bed47e7249a91a48f8dc416b6eceab344cbd30f0..f61d325fd97880a8eaaf3830f8eaf61e6dd4c663 100644 (file)
@@ -313,11 +313,13 @@ int nvm_register(struct request_queue *q, char *disk_name,
                                                                "ppalist");
                if (!dev->ppalist_pool) {
                        pr_err("nvm: could not create ppa pool\n");
-                       return -ENOMEM;
+                       ret = -ENOMEM;
+                       goto err_init;
                }
        } else if (dev->ops->max_phys_sect > 256) {
                pr_info("nvm: max sectors supported is 256.\n");
-               return -EINVAL;
+               ret = -EINVAL;
+               goto err_init;
        }
 
        down_write(&nvm_lock);