[patch] NVMe: return an error code if blk_mq_alloc_tag_set() fails

Jens Axboe axboe at kernel.dk
Wed Jan 21 20:40:37 PST 2015


On 01/19/2015 07:43 AM, Dan Carpenter wrote:
> In the current code, if blk_mq_alloc_tag_set() fails then it returns
> zero (success) instead of preserving the error code.  The caller is not
> expecting that and the kernel could be left in an inconsistent state.
>
> Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>

Looks good to me, Keith, could you ack/review it? Leaving it below...

> Static analysis stuff.  Not tested.
>
> diff --git a/drivers/block/nvme-core.c b/drivers/block/nvme-core.c
> index cb529e9..2ff5efc 100644
> --- a/drivers/block/nvme-core.c
> +++ b/drivers/block/nvme-core.c
> @@ -2152,7 +2152,8 @@ static int nvme_dev_add(struct nvme_dev *dev)
>   	dev->tagset.flags = BLK_MQ_F_SHOULD_MERGE;
>   	dev->tagset.driver_data = dev;
>
> -	if (blk_mq_alloc_tag_set(&dev->tagset))
> +	res = blk_mq_alloc_tag_set(&dev->tagset);
> +	if (res)
>   		goto out;
>
>   	id_ns = mem;
>
> _______________________________________________
> Linux-nvme mailing list
> Linux-nvme at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-nvme
>


-- 
Jens Axboe




More information about the Linux-nvme mailing list