From 5c861295ddc759281ff2a4068ce247ef00f91b2d Mon Sep 17 00:00:00 2001 From: Niklas Cassel Date: Wed, 9 Sep 2020 17:38:43 +0000 Subject: [PATCH] nvme: warn if found UUID descriptor length is incorrect Warn if found UUID descriptor length differs from NIDL for NIDT_UUID. This will help identify non-compliant NVMe controllers. Signed-off-by: Niklas Cassel Change-Id: Idf0daff9996147f38413318d1cd7fc3f929c5ce4 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4138 Reviewed-by: Paul Luse Reviewed-by: Jim Harris Reviewed-by: Changpeng Liu Reviewed-by: Shuhei Matsumoto Reviewed-by: Aleksey Marchuk Tested-by: SPDK CI Jenkins --- lib/nvme/nvme_ns.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/nvme/nvme_ns.c b/lib/nvme/nvme_ns.c index 88939352a..113869362 100644 --- a/lib/nvme/nvme_ns.c +++ b/lib/nvme/nvme_ns.c @@ -351,7 +351,9 @@ spdk_nvme_ns_get_uuid(const struct spdk_nvme_ns *ns) size_t uuid_size; uuid = nvme_ns_find_id_desc(ns, SPDK_NVME_NIDT_UUID, &uuid_size); - if (uuid == NULL || uuid_size != sizeof(*uuid)) { + if (uuid && uuid_size != sizeof(*uuid)) { + SPDK_WARNLOG("Invalid NIDT_UUID descriptor length reported: %zu (expected: %zu)\n", + uuid_size, sizeof(*uuid)); return NULL; }