* [PATCH v2 0/1] A few code cleanups @ 2019-11-26 22:26 Edmund Nadolski 2019-11-26 22:26 ` [PATCH v2 1/1] nvme: remove unused return code from nvme_alloc_ns Edmund Nadolski 0 siblings, 1 reply; 3+ messages in thread From: Edmund Nadolski @ 2019-11-26 22:26 UTC (permalink / raw) To: edmund.nadolski, linux-nvme, kbusch This patchset adds a few simple cleanups to the nvme code. v2: Emit informational message when an error occurs. Edmund Nadolski (1): nvme: remove unused return code from nvme_alloc_ns drivers/nvme/host/core.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) -- 2.20.1 _______________________________________________ linux-nvme mailing list linux-nvme@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-nvme ^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH v2 1/1] nvme: remove unused return code from nvme_alloc_ns 2019-11-26 22:26 [PATCH v2 0/1] A few code cleanups Edmund Nadolski @ 2019-11-26 22:26 ` Edmund Nadolski 2019-11-27 7:51 ` Christoph Hellwig 0 siblings, 1 reply; 3+ messages in thread From: Edmund Nadolski @ 2019-11-26 22:26 UTC (permalink / raw) To: edmund.nadolski, linux-nvme, kbusch The return code of nvme_alloc_ns is never used, so change it to void. Emit an informative message if an error occurs. Signed-off-by: Edmund Nadolski <edmund.nadolski@intel.com> --- drivers/nvme/host/core.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index e6ee34376c5e..69c407d3d9ba 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -3486,17 +3486,17 @@ static int nvme_setup_streams_ns(struct nvme_ctrl *ctrl, struct nvme_ns *ns) return 0; } -static int nvme_alloc_ns(struct nvme_ctrl *ctrl, unsigned nsid) +static void nvme_alloc_ns(struct nvme_ctrl *ctrl, unsigned nsid) { struct nvme_ns *ns; struct gendisk *disk; struct nvme_id_ns *id; char disk_name[DISK_NAME_LEN]; - int node = ctrl->numa_node, flags = GENHD_FL_EXT_DEVT, ret; + int node = ctrl->numa_node, flags = GENHD_FL_EXT_DEVT, ret = -ENOMEM; ns = kzalloc_node(sizeof(*ns), GFP_KERNEL, node); if (!ns) - return -ENOMEM; + goto out; ns->queue = blk_mq_init_queue(ctrl->tagset); if (IS_ERR(ns->queue)) { @@ -3525,10 +3525,8 @@ static int nvme_alloc_ns(struct nvme_ctrl *ctrl, unsigned nsid) if (ret) goto out_free_queue; - if (id->ncap == 0) { - ret = -EINVAL; + if (id->ncap == 0) goto out_free_id; - } ret = nvme_init_ns_head(ns, nsid, id); if (ret) @@ -3571,7 +3569,7 @@ static int nvme_alloc_ns(struct nvme_ctrl *ctrl, unsigned nsid) nvme_fault_inject_init(&ns->fault_inject, ns->disk->disk_name); kfree(id); - return 0; + return; out_put_disk: put_disk(ns->disk); out_unlink_ns: @@ -3585,9 +3583,9 @@ static int nvme_alloc_ns(struct nvme_ctrl *ctrl, unsigned nsid) blk_cleanup_queue(ns->queue); out_free_ns: kfree(ns); - if (ret > 0) - ret = blk_status_to_errno(nvme_error_status(ret)); - return ret; + out: + dev_warn(ctrl->device, "could not allocate %sns.\n", + (ret == -ENOMEM) ? "memory for " : "" ); } static void nvme_ns_remove(struct nvme_ns *ns) -- 2.20.1 _______________________________________________ linux-nvme mailing list linux-nvme@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-nvme ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v2 1/1] nvme: remove unused return code from nvme_alloc_ns 2019-11-26 22:26 ` [PATCH v2 1/1] nvme: remove unused return code from nvme_alloc_ns Edmund Nadolski @ 2019-11-27 7:51 ` Christoph Hellwig 0 siblings, 0 replies; 3+ messages in thread From: Christoph Hellwig @ 2019-11-27 7:51 UTC (permalink / raw) To: Edmund Nadolski; +Cc: kbusch, linux-nvme I think this needs some tweaks.. > ns = kzalloc_node(sizeof(*ns), GFP_KERNEL, node); > if (!ns) > - return -ENOMEM; > + goto out; kmalloc failures already always leave a trace, so we can just return here. > ns->queue = blk_mq_init_queue(ctrl->tagset); > if (IS_ERR(ns->queue)) { > @@ -3525,10 +3525,8 @@ static int nvme_alloc_ns(struct nvme_ctrl *ctrl, unsigned nsid) > if (ret) > goto out_free_queue; > > - if (id->ncap == 0) { > - ret = -EINVAL; > + if (id->ncap == 0) > goto out_free_id; > - } ncap == 0 means there is no namespace, this is a quirk dating back to NVMe 1.0 where the driver has to do a sequential scan. So we don't need a warning here either. So looking at this a bit more I'm not even sure we need warning messages contrary to my previous advice, as the only obvious error that is not a memory allocation is the command execution in nvme_identify_ns, and the lightnvm registration which both already log warnings. _______________________________________________ linux-nvme mailing list linux-nvme@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-nvme ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-11-27 7:51 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-11-26 22:26 [PATCH v2 0/1] A few code cleanups Edmund Nadolski 2019-11-26 22:26 ` [PATCH v2 1/1] nvme: remove unused return code from nvme_alloc_ns Edmund Nadolski 2019-11-27 7:51 ` Christoph Hellwig
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).