diff options
author | Wenwei Tao <ww.tao0320@gmail.com> | 2015-11-20 15:47:53 +0300 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2015-11-20 18:33:14 +0300 |
commit | 480fc0db819d706ea5608545a12d33cf8d5a31ab (patch) | |
tree | 0d3b5af91393d96ef5903327a85ec549b00cf052 /drivers/lightnvm | |
parent | 54514aa465e94316a4bf1c5dfe970536bec3e76f (diff) | |
download | linux-480fc0db819d706ea5608545a12d33cf8d5a31ab.tar.xz |
lightnvm: wrong return value and redundant free
The return value should be non-zero under error conditions.
Remove nvme_free(dev) to avoid free dev more than once.
Signed-off-by: Wenwei Tao <ww.tao0320@gmail.com>
Signed-off-by: Matias Bjørling <m@bjorling.me>
Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'drivers/lightnvm')
-rw-r--r-- | drivers/lightnvm/core.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/core.c index 8a556f3f36bb..bed47e7249a9 100644 --- a/drivers/lightnvm/core.c +++ b/drivers/lightnvm/core.c @@ -222,14 +222,13 @@ static void nvm_free(struct nvm_dev *dev) static int nvm_init(struct nvm_dev *dev) { struct nvmm_type *mt; - int ret = 0; + int ret = -EINVAL; if (!dev->q || !dev->ops) - return -EINVAL; + return ret; if (dev->ops->identity(dev->q, &dev->identity)) { pr_err("nvm: device could not be identified\n"); - ret = -EINVAL; goto err; } @@ -275,7 +274,6 @@ static int nvm_init(struct nvm_dev *dev) dev->nr_chnls); return 0; err: - nvm_free(dev); pr_err("nvm: failed to initialize nvm\n"); return ret; } |