summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorPan Bian <bianpan2016@163.com>2016-12-01 10:10:46 +0800
committerJens Axboe <axboe@fb.com>2016-12-01 08:01:14 -0700
commit5b0e34e1949ed580ac330041dccb0334b926554e (patch)
tree6ed363eecdcb05bdb2eb793a71f8c4bc34ee23c6 /drivers
parentd262920998c891dfd87cf73f823f0ff60e20cdad (diff)
downloadlinux-5b0e34e1949ed580ac330041dccb0334b926554e.tar.gz
linux-5b0e34e1949ed580ac330041dccb0334b926554e.tar.bz2
linux-5b0e34e1949ed580ac330041dccb0334b926554e.zip
block: mtip32xx: set error code on failure
Fix bug https://bugzilla.kernel.org/show_bug.cgi?id=188531. In function mtip_block_initialize(), variable rv takes the return value, and its value should be negative on errors. rv is initialized as 0 and is not reset when the call to ida_pre_get() fails. So 0 may be returned. The return value 0 indicates that there is no error, which may be inconsistent with the execution status. This patch fixes the bug by explicitly assigning -ENOMEM to rv on the branch that ida_pre_get() fails. Signed-off-by: Pan Bian <bianpan2016@163.com> Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/block/mtip32xx/mtip32xx.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/block/mtip32xx/mtip32xx.c b/drivers/block/mtip32xx/mtip32xx.c
index cfe0108a7d30..f96ab717534c 100644
--- a/drivers/block/mtip32xx/mtip32xx.c
+++ b/drivers/block/mtip32xx/mtip32xx.c
@@ -3933,8 +3933,10 @@ static int mtip_block_initialize(struct driver_data *dd)
/* Generate the disk name, implemented same as in sd.c */
do {
- if (!ida_pre_get(&rssd_index_ida, GFP_KERNEL))
+ if (!ida_pre_get(&rssd_index_ida, GFP_KERNEL)) {
+ rv = -ENOMEM;
goto ida_get_error;
+ }
spin_lock(&rssd_index_lock);
rv = ida_get_new(&rssd_index_ida, &index);