From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pg1-f176.google.com (mail-pg1-f176.google.com [209.85.215.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C89A24334A6 for ; Fri, 21 Aug 2026 23:03:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.176 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787353411; cv=none; b=fuYP7iVMyUd6yOwrk+OyCJmgwz3xwGUwnsvyYw7mCPgPPaSPE4Q3HlAbcGc7nzcp+R79X6BUlq+QeUHa1NvWxAbJsX9UaAVd8phQR4KHyfUOAxQBsHpBVSAP79jE1bsVTm6UBGuw8SlM9KMXO3rugNohs369GFtDdUsXwa8v4eU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787353411; c=relaxed/simple; bh=b9AgyQv+zWCgVkuFHtVwVxCyEdoGlYlA/rhbvRktMis=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=ouJooRwwqxn5YNBe4bQEOr15yimn4offT/VdGj2TzkgX/Q5q0AHGCX3jvrIvJ+7/zOPL9uV/UlzAIUUrPqEzJ/gXRxqbE+UtAK5En7P8tlJMMTBDYhJAgNwcoKi5d8ap2ETVE5TZD5ddkU0Fvl2K+pGz42MvT0E6Dd192vdt/9o= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=purestorage.com; spf=pass smtp.mailfrom=purestorage.com; dkim=pass (2048-bit key) header.d=purestorage.com header.i=@purestorage.com header.b=BAOosXOO; arc=none smtp.client-ip=209.85.215.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=purestorage.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=purestorage.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=purestorage.com header.i=@purestorage.com header.b="BAOosXOO" Received: by mail-pg1-f176.google.com with SMTP id 41be03b00d2f7-cbee846deecso1764828a12.1 for ; Fri, 21 Aug 2026 16:03:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1787353408; x=1787958208; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=hHO0W5bDt+7+202ttHm6gRSpxKsUzZVlbi6wQIkVmNQ=; b=BAOosXOOSm+uyMSWOcPUWdQ2u41wpNNggGYaRZ+eF6/+oy2sQ2qk+RMcVYV1jfWnP5 Jc0g8/SQQXj/a77jE5SlDMAaEd0fOUSsN8PjgwpD6VKmXp0ggMm36CD01Ay+2xOZPc/G IT3V2hMQ6T47FEQhKv2NcNZXOwmr/NeyMxFGkwEbie7usred2+i//z2IXvSN0YDTcGer YpMaDqUWpJhmPQlJOSOPIt6f2UNDjygNMH5y5w2uq50hJya8v/3OdIOC5jU5goZ5UHJK uuJ0mPMk4VSDPIa2K8Sk5DyVUq6JgZ0KaJsaVQGCmcRPDu5h238eSpM+QjRqC6+hPBqJ 6DGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787353408; x=1787958208; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=hHO0W5bDt+7+202ttHm6gRSpxKsUzZVlbi6wQIkVmNQ=; b=HXlS94kazG+CmF3RNB5xptX8NSliLUtWdd+7HklCagUpXyJGbuENZF+2OBbH8A1IUu hodlmo81QVfyLQWWZQPcVluM5+vN/FCfBarQ7emSdrjx0hQFinSiDc5Fq+ENRRAv54KD GAXblu3ONDiXxPYwEj90mZbNqMttzpsGLH57VjCjCHUt1aX0xdbKXTgR8vTjgiW9+Ivm gs0tAT3dBagLXSka95PJ8EjRVg9cylIkQHoU7qv7RwLCTlcRGRr6kv1Z661QAn76197F zVbDotEclmli7l1qrxaO7oe7QhTzzKkRxB8hCFCrgwrtPRl+za2EJ7QaCs7CvrKV9PRd 4n4g== X-Forwarded-Encrypted: i=1; AHgh+RoZm2I0z26lRJomIE8e7QZIeNl3x27wCwqy8AvdPSEJKTLAH1pzg/ILsvu+/Q52ZH18xRJvPqND8qvVoek=@vger.kernel.org X-Gm-Message-State: AFuF++koFi/+ZRoVgsm8NEo9060ubiIRoRZ6Um0qKB8Hg++C0o6W8GnB XVKK3dfd/NuCrxdttG3P1EE4AgEcCQV+Y3ihxIn81jlmzHWuAoBj0iLTbN4PbpXQnaw= X-Gm-Gg: AR+sD10YtmRg7N1MiicAUajzIGkyaOdkfp0TURBcTBaDIbLWccLRTyVwh87ptGLpa+a BZtc0/SVXBoFprhK4wW2yaA0FH10l+/00nazzgmw440iZD4nx30aUKW3svEQW96jWynrA5B7Pcx csjjzZYqtkBPjD6PSD/10UjOJBoQWbu8e/h1JsuwQJmHYHUr07KoBBejL1QYmixO2dTLa3sFidP kDcqY+m+vTgru3vBYsVM/GUuoPMs3iTQJx3BoWufhwKPS0sTUJ4MIpgL7mQa47LZ1NySx+qp4kP 1999v14fZeH25GJg/LVBKNoBZx3rwZg/NKdF0BkSy08fqmDdhcSjAaeKTIUJBvOfpkAAL3q2IYb q1JcWCvwYn5xyWLQfzwn7hD2W0pTs8H+rGVP/6mlXG6gUVUfhDwXsoUSkR473qglzYj9flY8HZW EJSIbN3cGTtMJcB/nuQ1skUCnOOp86bMg0ZeAR2SvUbhtknfxna32GQ+V16UzMm5CGmLySDG1BI gyib+6wiLA3 X-Received: by 2002:a17:90b:4b8c:b0:38e:bbf1:de34 with SMTP id 98e67ed59e1d1-395c35eb2c7mr17091343a91.7.1787353407932; Fri, 21 Aug 2026 16:03:27 -0700 (PDT) Received: from apollo.purestorage.com ([208.88.152.253]) by smtp.googlemail.com with ESMTPSA id 5a478bee46e88-327f909c6c9sm122799eec.6.2026.08.21.16.03.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Aug 2026 16:03:27 -0700 (PDT) From: Mohamed Khalfella To: Keith Busch , Jens Axboe , Christoph Hellwig , Sagi Grimberg , Chaitanya Kulkarni Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, Mohamed Khalfella Subject: [PATCH 1/2] nvme: print namespace IDs as unsigned 32bit value Date: Fri, 21 Aug 2026 16:03:09 -0700 Message-ID: <20260821230310.3937527-1-mkhalfella@purestorage.com> X-Mailer: git-send-email 2.54.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit NSIDs are 32-bit unsigned values, but a number of log messages print them with %d. An NSID larger than 0x7fffffff is rendered as a negative number, which is confusing in the kernel log and makes the message hard to correlate with the namespace it talks about. Sparse NSID spaces where high NSIDs are common are the most likely to hit this. The nsid sysfs attribute has the same problem, and there it is worse because userspace parses the value. For example: $ grep . /sys/class/block/nvme0*/nsid /sys/class/block/nvme0c0n1/nsid:10 /sys/class/block/nvme0c0n2/nsid:-16 /sys/class/block/nvme0c0n3/nsid:11 /sys/class/block/nvme0c0n4/nsid:-2000000016 /sys/class/block/nvme0n1/nsid:10 /sys/class/block/nvme0n2/nsid:-16 /sys/class/block/nvme0n3/nsid:11 /sys/class/block/nvme0n4/nsid:-2000000016 $ Print all of them with %u. Several messages in these files, including two in zns.c right next to the ones being changed, already use %u, so this only makes the rest consistent with them. No functional change other than how the NSID is formatted. Fixes: 2b9b6e86bca7 ("NVMe: Export namespace attributes to sysfs") Fixes: 1d5df6af8c74 ("nvme: don't blindly overwrite identifiers on disk revalidate") Fixes: ed754e5deeb1 ("nvme: track shared namespaces") Fixes: 9ad1927a3bc2 ("nvme: always search for namespace head") Fixes: 71010c309454 ("nvme: implement multiple I/O Command Set support") Fixes: 2f4c9ba23b88 ("nvme: export zoned namespaces without Zone Append support read-only") Fixes: 0ec84df4953b ("nvme-core: check ctrl css before setting up zns") Fixes: 2079f41ec6ff ("nvme: check that EUI/GUID/UUID are globally unique") Fixes: ce8d78616a6b ("nvme: warn about shared namespaces without CONFIG_NVME_MULTIPATH") Fixes: ac522fc6c316 ("nvme: don't reject probe due to duplicate IDs for single-ported PCIe devices") Signed-off-by: Mohamed Khalfella --- drivers/nvme/host/core.c | 18 +++++++++--------- drivers/nvme/host/sysfs.c | 2 +- drivers/nvme/host/zns.c | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index cc014cdc72ff..6ac173ba65d7 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -1610,7 +1610,7 @@ static int nvme_identify_ns_descs(struct nvme_ctrl *ctrl, } if (nvme_multi_css(ctrl) && !csi_seen) { - dev_warn(ctrl->device, "Command set not reported for nsid:%d\n", + dev_warn(ctrl->device, "Command set not reported for nsid:%u\n", info->nsid); status = -EINVAL; } @@ -4126,13 +4126,13 @@ static int nvme_init_ns_head(struct nvme_ns *ns, struct nvme_ns_info *info) ((ns->ctrl->subsys->cmic & NVME_CTRL_CMIC_MULTI_CTRL) && info->is_shared)) { dev_err(ctrl->device, - "ignoring nsid %d because of duplicate IDs\n", + "ignoring nsid %u because of duplicate IDs\n", info->nsid); return ret; } dev_err(ctrl->device, - "clearing duplicate IDs for nsid %d\n", info->nsid); + "clearing duplicate IDs for nsid %u\n", info->nsid); dev_err(ctrl->device, "use of /dev/disk/by-id/ may cause data corruption\n"); memset(&info->ids.nguid, 0, sizeof(info->ids.nguid)); @@ -4147,7 +4147,7 @@ static int nvme_init_ns_head(struct nvme_ns *ns, struct nvme_ns_info *info) ret = nvme_subsys_check_duplicate_ids(ctrl->subsys, &info->ids); if (ret) { dev_err(ctrl->device, - "duplicate IDs in subsystem for nsid %d\n", + "duplicate IDs in subsystem for nsid %u\n", info->nsid); goto out_unlock; } @@ -4161,20 +4161,20 @@ static int nvme_init_ns_head(struct nvme_ns *ns, struct nvme_ns_info *info) if ((!info->is_shared || !head->shared) && !list_empty(&head->list)) { dev_err(ctrl->device, - "Duplicate unshared namespace %d\n", + "Duplicate unshared namespace %u\n", info->nsid); goto out_put_ns_head; } if (!nvme_ns_ids_equal(&head->ids, &info->ids)) { dev_err(ctrl->device, - "IDs don't match for shared namespace %d\n", + "IDs don't match for shared namespace %u\n", info->nsid); goto out_put_ns_head; } if (!multipath) { dev_warn(ctrl->device, - "Found shared namespace %d, but multipathing not supported.\n", + "Found shared namespace %u, but multipathing not supported.\n", info->nsid); dev_warn_once(ctrl->device, "Shared namespace support requires core_nvme.multipath=Y.\n"); @@ -4420,7 +4420,7 @@ static void nvme_validate_ns(struct nvme_ns *ns, struct nvme_ns_info *info) if (!nvme_ns_ids_equal(&ns->head->ids, &info->ids)) { dev_err(ns->ctrl->device, - "identifiers changed for nsid %d\n", ns->head->ns_id); + "identifiers changed for nsid %u\n", ns->head->ns_id); goto out; } @@ -4447,7 +4447,7 @@ static void nvme_scan_ns(struct nvme_ctrl *ctrl, unsigned nsid) if (info.ids.csi != NVME_CSI_NVM && !nvme_multi_css(ctrl)) { dev_warn(ctrl->device, - "command set not reported for nsid: %d\n", nsid); + "command set not reported for nsid: %u\n", nsid); return; } diff --git a/drivers/nvme/host/sysfs.c b/drivers/nvme/host/sysfs.c index abf8edaae371..02a2490a9ed7 100644 --- a/drivers/nvme/host/sysfs.c +++ b/drivers/nvme/host/sysfs.c @@ -166,7 +166,7 @@ static DEVICE_ATTR_RO(eui); static ssize_t nsid_show(struct device *dev, struct device_attribute *attr, char *buf) { - return sysfs_emit(buf, "%d\n", dev_to_ns_head(dev)->ns_id); + return sysfs_emit(buf, "%u\n", dev_to_ns_head(dev)->ns_id); } static DEVICE_ATTR_RO(nsid); diff --git a/drivers/nvme/host/zns.c b/drivers/nvme/host/zns.c index 2a152e87bd76..e31ec6f4f94f 100644 --- a/drivers/nvme/host/zns.c +++ b/drivers/nvme/host/zns.c @@ -48,12 +48,12 @@ int nvme_query_zone_info(struct nvme_ns *ns, unsigned lbaf, NVME_CMD_EFFECTS_CSUPP)) { if (test_and_clear_bit(NVME_NS_FORCE_RO, &ns->flags)) dev_warn(ns->ctrl->device, - "Zone Append supported for zoned namespace:%d. Remove read-only mode\n", + "Zone Append supported for zoned namespace:%u. Remove read-only mode\n", ns->head->ns_id); } else { set_bit(NVME_NS_FORCE_RO, &ns->flags); dev_warn(ns->ctrl->device, - "Zone Append not supported for zoned namespace:%d. Forcing to read-only mode\n", + "Zone Append not supported for zoned namespace:%u. Forcing to read-only mode\n", ns->head->ns_id); } -- 2.54.0