From: Christoph Hellwig Date: Tue, 12 Jul 2022 16:15:01 +0000 (+0200) Subject: nvme: generalize the nvme_multi_css check in nvme_scan_ns X-Git-Tag: baikal/mips/sdk6.1~5126^2~28 X-Git-Url: https://git.baikalelectronics.ru/?a=commitdiff_plain;h=c32f219e54ba5755078ee8ce021ddb7709465055;p=kernel.git nvme: generalize the nvme_multi_css check in nvme_scan_ns Check for multiple command set support early on an error out if is not supported when a !NVM command set namespace is found. This prepares for adding command set independent passthrough support. Signed-off-by: Christoph Hellwig Reviewed-by: Javier González Reviewed-by: Joel Granados Reviewed-by: Sagi Grimberg Reviewed-by: Kanchan Joshi Reviewed-by: Chaitanya Kulkarni Signed-off-by: Jens Axboe --- diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index c8d7bb06e371e..25d0af78fb00d 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -4294,6 +4294,12 @@ static void nvme_scan_ns(struct nvme_ctrl *ctrl, unsigned nsid) if (nvme_identify_ns_descs(ctrl, nsid, &ids)) return; + if (ids.csi != NVME_CSI_NVM && !nvme_multi_css(ctrl)) { + dev_warn(ctrl->device, + "command set not reported for nsid: %d\n", nsid); + return; + } + /* * Check if the namespace is ready. If not ignore it, we will get an * AEN once it becomes ready and restart the scan. @@ -4325,12 +4331,6 @@ static void nvme_scan_ns(struct nvme_ctrl *ctrl, unsigned nsid) nsid); break; } - if (!nvme_multi_css(ctrl)) { - dev_warn(ctrl->device, - "command set not reported for nsid: %d\n", - nsid); - break; - } nvme_alloc_ns(ctrl, nsid, &ids); break; default: