From: Jens Axboe Date: Wed, 10 Dec 2014 20:02:44 +0000 (-0700) Subject: NVMe: fix error return checking from blk_mq_alloc_request() X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=97fe383222cb8a01fb67a8823498ad2edcc20b35;p=openwrt%2Fstaging%2Fblogic.git NVMe: fix error return checking from blk_mq_alloc_request() We return an error pointer or the request, not NULL. Half the call paths got it right, the others didn't. Fix those up. Signed-off-by: Jens Axboe --- diff --git a/drivers/block/nvme-core.c b/drivers/block/nvme-core.c index cf9b8a8a24d3..2cc2cee7a367 100644 --- a/drivers/block/nvme-core.c +++ b/drivers/block/nvme-core.c @@ -875,8 +875,8 @@ static int __nvme_submit_admin_cmd(struct nvme_dev *dev, struct nvme_command *cm struct request *req; req = blk_mq_alloc_request(dev->admin_q, WRITE, GFP_KERNEL, false); - if (!req) - return -ENOMEM; + if (IS_ERR(req)) + return PTR_ERR(req); res = nvme_submit_sync_cmd(req, cmd, result, timeout); blk_mq_free_request(req); return res; @@ -896,8 +896,8 @@ int nvme_submit_io_cmd(struct nvme_dev *dev, struct nvme_ns *ns, req = blk_mq_alloc_request(ns->queue, WRITE, (GFP_KERNEL|__GFP_WAIT), false); - if (!req) - return -ENOMEM; + if (IS_ERR(req)) + return PTR_ERR(req); res = nvme_submit_sync_cmd(req, cmd, result, NVME_IO_TIMEOUT); blk_mq_free_request(req); return res; @@ -1691,8 +1691,8 @@ static int nvme_user_cmd(struct nvme_dev *dev, struct nvme_ns *ns, req = blk_mq_alloc_request(ns->queue, WRITE, (GFP_KERNEL|__GFP_WAIT), false); - if (!req) - status = -ENOMEM; + if (IS_ERR(req)) + status = PTR_ERR(req); else { status = nvme_submit_sync_cmd(req, &c, &cmd.result, timeout);