]> www.infradead.org Git - users/hch/misc.git/commitdiff
nvmet: implement id ns for nvm command set
authorKeith Busch <kbusch@kernel.org>
Mon, 4 Nov 2024 15:27:44 +0000 (07:27 -0800)
committerKeith Busch <kbusch@kernel.org>
Mon, 11 Nov 2024 17:49:48 +0000 (09:49 -0800)
We don't report anything here, but it's a mandatory identification for
nvme 2.1.

Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Reviewed-by: Matias Bjørling <matias.bjorling@wdc.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Keith Busch <kbusch@kernel.org>
drivers/nvme/target/admin-cmd.c

index 19428745c79579d15373c62a2fbc8830b01c46fa..3bf2e06baad788ecba926b0b8822b7c0e82770ff 100644 (file)
@@ -701,6 +701,20 @@ static void nvmet_execute_identify_ctrl_nvm(struct nvmet_req *req)
                   nvmet_zero_sgl(req, 0, sizeof(struct nvme_id_ctrl_nvm)));
 }
 
+static void nvme_execute_identify_ns_nvm(struct nvmet_req *req)
+{
+       u16 status;
+
+       status = nvmet_req_find_ns(req);
+       if (status)
+               goto out;
+
+       status = nvmet_copy_to_sgl(req, 0, ZERO_PAGE(0),
+                                  NVME_IDENTIFY_DATA_SIZE);
+out:
+       nvmet_req_complete(req, status);
+}
+
 static void nvmet_execute_identify(struct nvmet_req *req)
 {
        if (!nvmet_check_transfer_len(req, NVME_IDENTIFY_DATA_SIZE))
@@ -722,8 +736,8 @@ static void nvmet_execute_identify(struct nvmet_req *req)
        case NVME_ID_CNS_CS_NS:
                switch (req->cmd->identify.csi) {
                case NVME_CSI_NVM:
-                       /* Not supported */
-                       break;
+                       nvme_execute_identify_ns_nvm(req);
+                       return;
                case NVME_CSI_ZNS:
                        if (IS_ENABLED(CONFIG_BLK_DEV_ZONED)) {
                                nvmet_execute_identify_ns_zns(req);