]> git.baikalelectronics.ru Git - kernel.git/commitdiff
nvme: generalize the nvme_multi_css check in nvme_scan_ns
authorChristoph Hellwig <hch@lst.de>
Tue, 12 Jul 2022 16:15:01 +0000 (18:15 +0200)
committerJens Axboe <axboe@kernel.dk>
Tue, 2 Aug 2022 23:22:51 +0000 (17:22 -0600)
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 <hch@lst.de>
Reviewed-by: Javier González <javier.gonz@samsung.com>
Reviewed-by: Joel Granados <j.granados@samsung.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Kanchan Joshi <joshi.k@samsung.com>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/nvme/host/core.c

index c8d7bb06e371eca5af2ad4ca0c75f3fb54f98d4c..25d0af78fb00d26555e71c1b30aba3f8bcfb5b38 100644 (file)
@@ -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: