public inbox for linux-nvme@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH] nvme-core: check id->mc before setting NVME_NS_METADATA_SUPPORTED
@ 2023-06-24 10:35 Irvin Cote
  2023-06-27 15:30 ` Keith Busch
  2023-06-27 16:02 ` Max Gurtovoy
  0 siblings, 2 replies; 6+ messages in thread
From: Irvin Cote @ 2023-06-24 10:35 UTC (permalink / raw)
  To: hch; +Cc: kbusch, axboe, sagi, linux-nvme, Irvin Cote

The NVM Command set Identify Namespace Data Structure defines
the metadata capabilities field (mc) that determines support for
metadata. Check for the value of this field before enabling the
NVME_NS_METADATA_SUPPORTED in the nvme_ns data structure.

Signed-off-by: Irvin Cote <irvincoteg@gmail.com>
---
 drivers/nvme/host/core.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index 3ec38e2b9173..465206b5cf6f 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -1841,7 +1841,8 @@ static void nvme_configure_metadata(struct nvme_ns *ns, struct nvme_id_ns *id)
 		 * Note, this check will need to be modified if any drivers
 		 * gain the ability to use other metadata formats.
 		 */
-		if (ctrl->max_integrity_segments && nvme_ns_has_pi(ns))
+		if (ctrl->max_integrity_segments && nvme_ns_has_pi(ns)
+				&& (id->mc & NVME_MC_EXTENDED_LBA))
 			ns->features |= NVME_NS_METADATA_SUPPORTED;
 	} else {
 		/*
@@ -1852,7 +1853,7 @@ static void nvme_configure_metadata(struct nvme_ns *ns, struct nvme_id_ns *id)
 		 */
 		if (id->flbas & NVME_NS_FLBAS_META_EXT)
 			ns->features |= NVME_NS_EXT_LBAS;
-		else
+		else if (id->mc & NVME_MC_METADATA_PTR)
 			ns->features |= NVME_NS_METADATA_SUPPORTED;
 	}
 }
-- 
2.40.1



^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-07-10  7:01 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-24 10:35 [PATCH] nvme-core: check id->mc before setting NVME_NS_METADATA_SUPPORTED Irvin Cote
2023-06-27 15:30 ` Keith Busch
2023-06-27 16:02 ` Max Gurtovoy
2023-06-30 17:41   ` irvin cote
2023-07-02 14:02     ` irvin cote
2023-07-10  7:01     ` Christoph Hellwig

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox