From nobody Sat Nov 15 05:30:42 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1754911655; cv=none; d=zohomail.com; s=zohoarc; b=Rf2Xe240PRXC7WkiYkzpb6h3T0jiloeEysc/XTYosgHRFGAktPvsZEK/u03xJmqM5S/P9I70USc7z+NAscyuc+EBUc/7hSa73St0M35R5+PFC8KZC1doioetFlyPC+4KhRMZzFRXuMwdGgCnEi7/ezFfVkzlQ2FUKaDx8Zgvh2I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754911655; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=i/mw+hQG5A6p2/B45mPVdyaSEbYyrQOqN7pCLNhcZvs=; b=ToWbMcddqKkeXkumZs5D7KdZ6xKhWYLBgOVZd7W2s4z2mANEKlAHmwYzo1v5F5XTzBEtkMn2ryCz5/ny/3EtU6Wm0urFcWa/rvEI2aWZRjBPkNYqrs0kNDgLJwr+DslR5ZkV8DuIcbT/WAoYYyDnnh//kTdCW9eUENM+TPSJsvs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1754911654877895.8817518600068; Mon, 11 Aug 2025 04:27:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ulQfY-0002tH-6f; Mon, 11 Aug 2025 07:26:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ulQfW-0002sq-6H; Mon, 11 Aug 2025 07:26:22 -0400 Received: from fhigh-b7-smtp.messagingengine.com ([202.12.124.158]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ulQfP-0004cd-Fl; Mon, 11 Aug 2025 07:26:21 -0400 Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44]) by mailfhigh.stl.internal (Postfix) with ESMTP id DB0657A0083; Mon, 11 Aug 2025 07:26:08 -0400 (EDT) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-04.internal (MEProxy); Mon, 11 Aug 2025 07:26:09 -0400 Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 11 Aug 2025 07:26:06 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irrelevant.dk; h=cc:cc:content-transfer-encoding:content-type:date:date:from :from:in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm2; t=1754911568; x= 1754997968; bh=i/mw+hQG5A6p2/B45mPVdyaSEbYyrQOqN7pCLNhcZvs=; b=D 4QLYoFRpX++txeH/Zml4O84wrLZzWmYqlbQb3I/ydrJ8mCwcqxKUJONFInPM+Zks 2pupz8g7od9WeA+BGUUfMm4RgpXjsmYPVt31Wkth61JAZswbJxVrGeQA2+hc5ZXj 7YN884lT+cS6pzBaHmTPhnCnxMaivRY4Uc3VVhHfTTlzq7dxgjBgpPUSMFMQ5QOL WdbxBYJWyO1ep2uRFL370q6MX7gl/8NO7fmvrhZo/78vG+p+JUBv3cdoH9v17qGo hLQww1jq3kKBIpHjDSnvQFKznEDm5Bak5fu6W89IhYDKKaG4RFHZsnOTa1WQJtjd y0UMhTw4NvxDXCihRZfSw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm3; t=1754911568; x=1754997968; bh=i /mw+hQG5A6p2/B45mPVdyaSEbYyrQOqN7pCLNhcZvs=; b=GBmb9rVolhfQ47qTq MPodGB3xtRMszUQyiQCZV2tA1wDVviKGpyMqelnI4d7GMBhHlKmLRGsAKPpjk1Nr GWKXNq4IpUCf0MlcoQ5it8iPzjACNHVdwqYRbDftZX2Y5Zssz2sdiXVJ4hrV5vfK mPT4qFAcljEucouSkRufixg9GD0Gu9csb423D+4pHe4EPe99mZUDGwzjVdLfy6tg ALAAl+vfa4oULar+JcTwedvFPOBnVOHKfjl6FAUaLErUt41jJkMAHeB6h0RgATfD ViuIh8EMcPl5DSw0yw4WC7lkEIIE07kKDXRC0Ks3nQltEZBxIL8uzx0q1Zyw4CBO YEf4w== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgddufedvfeefucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepmfhlrghushcu lfgvnhhsvghnuceoihhtshesihhrrhgvlhgvvhgrnhhtrdgukheqnecuggftrfgrthhtvg hrnhepfeehteeghefffeegkefghfegieejkeevfffhjeevfeekudeiieevheetledujedu necuffhomhgrihhnpehgihhtlhgrsgdrtghomhenucevlhhushhtvghrufhiiigvpedtne curfgrrhgrmhepmhgrihhlfhhrohhmpehithhssehirhhrvghlvghvrghnthdrughkpdhn sggprhgtphhtthhopeejpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehqvghmuh dquggvvhgvlhesnhhonhhgnhhurdhorhhgpdhrtghpthhtohepphgvthgvrhdrmhgrhigu vghllheslhhinhgrrhhordhorhhgpdhrtghpthhtohepkhdrjhgvnhhsvghnsehsrghmsh hunhhgrdgtohhmpdhrtghpthhtohepfhhoshhsseguvghfmhgrtghrohdrihhtpdhrtghp thhtohepkhgsuhhstghhsehkvghrnhgvlhdrohhrghdprhgtphhtthhopehithhssehirh hrvghlvghvrghnthdrughkpdhrtghpthhtohepqhgvmhhuqdgslhhotghksehnohhnghhn uhdrohhrgh X-ME-Proxy: Feedback-ID: idc91472f:Fastmail From: Klaus Jensen To: qemu-devel@nongnu.org Cc: Peter Maydell , Klaus Jensen , Jesper Wendel Devantier , Keith Busch , Klaus Jensen , qemu-block@nongnu.org Subject: [PULL 1/3] hw/nvme: fix namespace attachment Date: Mon, 11 Aug 2025 13:25:55 +0200 Message-ID: <20250811112557.521-2-its@irrelevant.dk> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250811112557.521-1-its@irrelevant.dk> References: <20250811112557.521-1-its@irrelevant.dk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=202.12.124.158; envelope-from=its@irrelevant.dk; helo=fhigh-b7-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @irrelevant.dk) X-ZM-MESSAGEID: 1754911658234124100 Content-Type: text/plain; charset="utf-8" From: Klaus Jensen Commit 6ccca4b6bb9f ("hw/nvme: rework csi handling") introduced a bug in Namespace Attachment, causing it to a) not allow a controller to attach namespaces to other controllers b) assert if a valid non-attached namespace is detached This fixes both issues. Fixes: 6ccca4b6bb9f ("hw/nvme: rework csi handling") Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2976 Reviewed-by: Jesper Wendel Devantier Signed-off-by: Klaus Jensen --- hw/nvme/ctrl.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c index e764ec7683ab..6c06d7f8f9dd 100644 --- a/hw/nvme/ctrl.c +++ b/hw/nvme/ctrl.c @@ -6816,7 +6816,7 @@ static uint16_t nvme_ns_attachment(NvmeCtrl *n, NvmeR= equest *req) =20 switch (sel) { case NVME_NS_ATTACHMENT_ATTACH: - if (nvme_ns(n, nsid)) { + if (nvme_ns(ctrl, nsid)) { return NVME_NS_ALREADY_ATTACHED | NVME_DNR; } =20 @@ -6824,7 +6824,7 @@ static uint16_t nvme_ns_attachment(NvmeCtrl *n, NvmeR= equest *req) return NVME_NS_PRIVATE | NVME_DNR; } =20 - if (!nvme_csi_supported(n, ns->csi)) { + if (!nvme_csi_supported(ctrl, ns->csi)) { return NVME_IOCS_NOT_SUPPORTED | NVME_DNR; } =20 @@ -6834,6 +6834,10 @@ static uint16_t nvme_ns_attachment(NvmeCtrl *n, Nvme= Request *req) break; =20 case NVME_NS_ATTACHMENT_DETACH: + if (!nvme_ns(ctrl, nsid)) { + return NVME_NS_NOT_ATTACHED | NVME_DNR; + } + nvme_detach_ns(ctrl, ns); nvme_update_dsm_limits(ctrl, NULL); =20 --=20 2.47.2 From nobody Sat Nov 15 05:30:42 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1754911673; cv=none; d=zohomail.com; s=zohoarc; b=cVUf+0lNgTVP5SHWqsdsF9QHBOCv2B3Gld3PqKPsmuYW1Z+DFWbLL9yGoAlHQlu903N9rFqG/ReRhewBdmIDgsT+cYFEURE8oQBELZCGMIbN1xD2AGOSx7ElQhqc6fvO471F0WAeYjX4E2FfkW0yW0LxTe4DOiB/JXlAzLENWtU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754911673; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=s6MrAXazLw7EZfd/Th4/I6mHCEsNHvbAfXz8dOb5IzQ=; b=oBMnerW5A/ZgqRxiy3GTgHD2ozp4XjXXEQZIbRNKnLLSfE1sq/JgzANo8FLQSVGCTobkX2FwQ7A70LXjZ8SB5AaexDCgBLAYlfsqYZYLyn0y2M3n/DRNj8A8mbhQ++YWjOMMTrApMWkHuPJV4+Pbo1iQ/fiNKyWG2lNPTHWe9Rg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1754911672693512.9084154057572; Mon, 11 Aug 2025 04:27:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ulQfb-0002vC-Qj; Mon, 11 Aug 2025 07:26:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ulQfX-0002t4-2h; Mon, 11 Aug 2025 07:26:23 -0400 Received: from fhigh-b7-smtp.messagingengine.com ([202.12.124.158]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ulQfQ-0004dm-DJ; Mon, 11 Aug 2025 07:26:22 -0400 Received: from phl-compute-10.internal (phl-compute-10.internal [10.202.2.50]) by mailfhigh.stl.internal (Postfix) with ESMTP id 05B667A0054; Mon, 11 Aug 2025 07:26:10 -0400 (EDT) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-10.internal (MEProxy); Mon, 11 Aug 2025 07:26:11 -0400 Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 11 Aug 2025 07:26:09 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irrelevant.dk; h=cc:cc:content-transfer-encoding:content-type:date:date:from :from:in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm2; t=1754911570; x= 1754997970; bh=s6MrAXazLw7EZfd/Th4/I6mHCEsNHvbAfXz8dOb5IzQ=; b=M knZwajPb2JLYWHkISXfbCYPGBnus4QVBEOqzN0AvrdmPz52XwW7EcbquwiVUPgIz cegG5r1ewzxQx9I/2pDZrJ4YJImj2pE9hy+HlqDdyDcUTBBECw8nwT9r8Flzos0u tp9AcpW7wf/M+7pYX7f8pvb7BxCs29N8r76l810LZzygEGsWiAeQVKf7yy6CBB7J Cla9CL2YFZmtLJqdE68IzPgm69G/9LlCSB3OM2Nmewix5tC4O5DlZX6UGP9+TYqy jfg9F8m74F1kCC9tlYMqsM5WyWMdXz2nmFi7m3KXoah4J/vW6TkB23FmWVU25kgd 2bAoy63d0TY+BPqY5OTkA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm3; t=1754911570; x=1754997970; bh=s 6MrAXazLw7EZfd/Th4/I6mHCEsNHvbAfXz8dOb5IzQ=; b=mMyCkbXRGMqne9Zhb O9mqpAC/ejLCH3TBlf0PVV/UM3SNb09QYOGchKjqJnQskLMidUVSU0InoR8Eaa7/ ryYyA2WcdgplDDPRJpXHFSGOG6ZsGddXD9DgRXrVW3k2FkribAHZ7OLkp89lbPjP jNelc+F7H/5oRtbWMJ97zVrvXNWQMkKInHkxeXOPzsp5XsmC8AHGS/uX2ClIx7Ad xdgNyAzSrUTPFTdIkj/076GQyhyNKo2T57JkC77EONXuzNwMNNze8TQn98y1/jGz Zcfls/GfzS9FzIONWA0CzWEyFgdIxkU4QsuojrsH+cbyJbRMkuXOc8v9AmUbB8S0 jRv3A== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgddufedvfeefucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepmfhlrghushcu lfgvnhhsvghnuceoihhtshesihhrrhgvlhgvvhgrnhhtrdgukheqnecuggftrfgrthhtvg hrnhepjefgieelgfeiveehkeeuveehheekfeevgeeigfehfefgjeejhefffeegudejudeg necuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepihhtsh esihhrrhgvlhgvvhgrnhhtrdgukhdpnhgspghrtghpthhtohepkedpmhhouggvpehsmhht phhouhhtpdhrtghpthhtohepqhgvmhhuqdguvghvvghlsehnohhnghhnuhdrohhrghdprh gtphhtthhopehpvghtvghrrdhmrgihuggvlhhlsehlihhnrghrohdrohhrghdprhgtphht thhopehkrdhjvghnshgvnhesshgrmhhsuhhnghdrtghomhdprhgtphhtthhopegrlhgrnh drrggurghmshhonhesohhrrggtlhgvrdgtohhmpdhrtghpthhtohepkhgsuhhstghhsehk vghrnhgvlhdrohhrghdprhgtphhtthhopehithhssehirhhrvghlvghvrghnthdrughkpd hrtghpthhtohepfhhoshhsseguvghfmhgrtghrohdrihhtpdhrtghpthhtohepqhgvmhhu qdgslhhotghksehnohhnghhnuhdrohhrgh X-ME-Proxy: Feedback-ID: idc91472f:Fastmail From: Klaus Jensen To: qemu-devel@nongnu.org Cc: Peter Maydell , Klaus Jensen , Alan Adamson , Keith Busch , Klaus Jensen , Jesper Devantier , qemu-block@nongnu.org Subject: [PULL 2/3] hw/nvme: revert CMIC behavior Date: Mon, 11 Aug 2025 13:25:56 +0200 Message-ID: <20250811112557.521-3-its@irrelevant.dk> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250811112557.521-1-its@irrelevant.dk> References: <20250811112557.521-1-its@irrelevant.dk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=202.12.124.158; envelope-from=its@irrelevant.dk; helo=fhigh-b7-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @irrelevant.dk) X-ZM-MESSAGEID: 1754911675026116600 Content-Type: text/plain; charset="utf-8" From: Klaus Jensen Commit cd59f50ab017 ("hw/nvme: always initialize a subsystem") causes the controller to always set the CMIC.MCTRS ("Multiple Controllers") bit. While spec-compliant, this is a deviation from the previous behavior where this was only set if an nvme-subsys device was explicitly created (to configure a subsystem with multiple controllers/namespaces). Revert the behavior to only set CMIC.MCTRS if an nvme-subsys device is created explicitly. Reported-by: Alan Adamson Fixes: cd59f50ab017 ("hw/nvme: always initialize a subsystem") Reviewed-by: Alan Adamson Tested-by: Alan Adamson Signed-off-by: Klaus Jensen --- hw/nvme/ctrl.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c index 6c06d7f8f9dd..fa48412ef48e 100644 --- a/hw/nvme/ctrl.c +++ b/hw/nvme/ctrl.c @@ -8780,7 +8780,7 @@ static void nvme_init_ctrl(NvmeCtrl *n, PCIDevice *pc= i_dev) uint8_t *pci_conf =3D pci_dev->config; uint64_t cap =3D ldq_le_p(&n->bar.cap); NvmeSecCtrlEntry *sctrl =3D nvme_sctrl(n); - uint32_t ctratt; + uint32_t ctratt =3D le32_to_cpu(id->ctratt); uint16_t oacs; =20 memcpy(n->cse.acs, nvme_cse_acs_default, sizeof(n->cse.acs)); @@ -8798,10 +8798,11 @@ static void nvme_init_ctrl(NvmeCtrl *n, PCIDevice *= pci_dev) =20 id->oaes =3D cpu_to_le32(NVME_OAES_NS_ATTR); =20 - ctratt =3D NVME_CTRATT_ELBAS; + ctratt |=3D NVME_CTRATT_ELBAS; if (n->params.ctratt.mem) { ctratt |=3D NVME_CTRATT_MEM; } + id->ctratt =3D cpu_to_le32(ctratt); =20 id->rab =3D 6; =20 @@ -8884,17 +8885,6 @@ static void nvme_init_ctrl(NvmeCtrl *n, PCIDevice *p= ci_dev) id->psd[0].enlat =3D cpu_to_le32(0x10); id->psd[0].exlat =3D cpu_to_le32(0x4); =20 - id->cmic |=3D NVME_CMIC_MULTI_CTRL; - ctratt |=3D NVME_CTRATT_ENDGRPS; - - id->endgidmax =3D cpu_to_le16(0x1); - - if (n->subsys->endgrp.fdp.enabled) { - ctratt |=3D NVME_CTRATT_FDPS; - } - - id->ctratt =3D cpu_to_le32(ctratt); - NVME_CAP_SET_MQES(cap, n->params.mqes); NVME_CAP_SET_CQR(cap, 1); NVME_CAP_SET_TO(cap, 0xf); @@ -8927,6 +8917,20 @@ static int nvme_init_subsys(NvmeCtrl *n, Error **err= p) } =20 n->subsys =3D NVME_SUBSYS(dev); + } else { + NvmeIdCtrl *id =3D &n->id_ctrl; + uint32_t ctratt =3D le32_to_cpu(id->ctratt); + + id->cmic |=3D NVME_CMIC_MULTI_CTRL; + ctratt |=3D NVME_CTRATT_ENDGRPS; + + id->endgidmax =3D cpu_to_le16(0x1); + + if (n->subsys->endgrp.fdp.enabled) { + ctratt |=3D NVME_CTRATT_FDPS; + } + + id->ctratt =3D cpu_to_le32(ctratt); } =20 cntlid =3D nvme_subsys_register_ctrl(n, errp); --=20 2.47.2 From nobody Sat Nov 15 05:30:42 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1754911658; cv=none; d=zohomail.com; s=zohoarc; b=Kh9GGpJEUdf/29QqlJoMMYY+GbXa/46tzirswc1VLf9SY9SzZDAoka+hnr3PaDt+hEXAnDUZ3ixwnR6ATuo9bH7/QZEOdY4h+8L4L01/0vQPIvZy7pjvJiYi2X5AIKLZGXVHj9C5FUS0LymIKMLu2kzyksfKvzU7zuplhPXffgQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754911658; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=mi9pZ3LFQVGMrdUdfVF65b2q7BTmwvZnwSwFJjAwaCc=; b=aFdS2g7Am4iOAcGb8THWGD7NrRQWcO6e0NY5lWhViB92VQ1LS3oLHEsRVQ4i1vuTYC35bF0f1ykCTmEfSt54fsRHUgK+ks11VLMgreQnEMqYLBPtZYjjWnv/u8iBwlagt7TZnCAH6tmqqAkI+o3l/mOjuEtmmtNaQQ/x5moc/Qo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1754911658521637.6503996163242; Mon, 11 Aug 2025 04:27:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ulQfa-0002uf-2o; Mon, 11 Aug 2025 07:26:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ulQfY-0002ta-94; Mon, 11 Aug 2025 07:26:24 -0400 Received: from fhigh-b7-smtp.messagingengine.com ([202.12.124.158]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ulQfQ-0004eW-Ec; Mon, 11 Aug 2025 07:26:23 -0400 Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41]) by mailfhigh.stl.internal (Postfix) with ESMTP id 157997A0081; Mon, 11 Aug 2025 07:26:13 -0400 (EDT) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-01.internal (MEProxy); Mon, 11 Aug 2025 07:26:13 -0400 Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 11 Aug 2025 07:26:11 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irrelevant.dk; h=cc:cc:content-transfer-encoding:content-type:date:date:from :from:in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm2; t=1754911572; x= 1754997972; bh=mi9pZ3LFQVGMrdUdfVF65b2q7BTmwvZnwSwFJjAwaCc=; b=g VO8dMLaiNQZaDLTBHXJ6x6MvoA7Fh2jS04/jCi8sM2TrvjZmonGwcBzc+PXt/bXy EL9iFO4j1KurjnTygDC9tKC9yu+OnBzJWBweDvfV1+DDSsluGkaX1AEwj8KxAUP8 /Eb/KuV2X5H8eaolgY5uLGARuScgyzSKJ92QatnBPfbyLryDATGKBK9XN1c5cEuj hHkvcxteIJUR1F0YRKwxfMjtooQmWo8QuLKth5oKJcqxyVWZz974vHdiny6JMLTi qF4/rQL7Z88pZ+A9/cG/aqOy5FPIIMhYESNqzj4hTjQqYRuqZkhhQOMHuK6cq4fp OW539Z/lec633/mj55KFw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm3; t=1754911572; x=1754997972; bh=m i9pZ3LFQVGMrdUdfVF65b2q7BTmwvZnwSwFJjAwaCc=; b=VQcKm+r5ses9FD+FO SKb80SuHbyPvCUMlUTCyx7HyhcqcoDZrS4LSNaNdytTU51p72vilR0cKHTICQA3X V6dYJY4VOcGrQ4dQ7mRwpRamJrhSYHfdrncD72+a2rUDzJNeJJde3PNChTuTkQm3 VWO0kZ16NHuUVNASrfnImOpJ53yoT11bqVi55n7/ZJJR2IJshPFxTKoO/cheRvwb OTbOlkJm78Fg03gyB+UX52Wp9Oz9j+8w3nzaSPhinqyH/aBt+E4fmHYuywUOhYPJ PzC6gIsALypMUXVvA606zOlPb+kzqtDf5cL3tl51Ix4E5xX2sztfocEo4ncXTUAG g0Tgg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgddufedvfeefucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepmfhlrghushcu lfgvnhhsvghnuceoihhtshesihhrrhgvlhgvvhgrnhhtrdgukheqnecuggftrfgrthhtvg hrnhepjefgieelgfeiveehkeeuveehheekfeevgeeigfehfefgjeejhefffeegudejudeg necuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepihhtsh esihhrrhgvlhgvvhgrnhhtrdgukhdpnhgspghrtghpthhtohepjedpmhhouggvpehsmhht phhouhhtpdhrtghpthhtohepqhgvmhhuqdguvghvvghlsehnohhnghhnuhdrohhrghdprh gtphhtthhopehpvghtvghrrdhmrgihuggvlhhlsehlihhnrghrohdrohhrghdprhgtphht thhopehksghushgthheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepkhdrjhgvnhhsvg hnsehsrghmshhunhhgrdgtohhmpdhrtghpthhtohepihhtshesihhrrhgvlhgvvhgrnhht rdgukhdprhgtphhtthhopehfohhsshesuggvfhhmrggtrhhordhithdprhgtphhtthhope hqvghmuhdqsghlohgtkhesnhhonhhgnhhurdhorhhg X-ME-Proxy: Feedback-ID: idc91472f:Fastmail From: Klaus Jensen To: qemu-devel@nongnu.org Cc: Peter Maydell , Keith Busch , Klaus Jensen , Klaus Jensen , Jesper Devantier , qemu-block@nongnu.org Subject: [PULL 3/3] hw/nvme: cap MDTS value for internal limitation Date: Mon, 11 Aug 2025 13:25:57 +0200 Message-ID: <20250811112557.521-4-its@irrelevant.dk> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250811112557.521-1-its@irrelevant.dk> References: <20250811112557.521-1-its@irrelevant.dk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=202.12.124.158; envelope-from=its@irrelevant.dk; helo=fhigh-b7-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @irrelevant.dk) X-ZM-MESSAGEID: 1754911662134124100 Content-Type: text/plain; charset="utf-8" From: Keith Busch The emulated device had let the user set whatever max transfers size they wanted, including no limit. However the device does have an internal limit of 1024 segments. NVMe doesn't report max segments, though. This is implicitly inferred based on the MDTS and MPSMIN values. IOV_MAX is currently 1024 which 4k PRPs can exceed with 2MB transfers. Don't allow MDTS values that can exceed this, otherwise users risk seeing "internal error" status to their otherwise protocol compliant commands. Signed-off-by: Keith Busch Signed-off-by: Klaus Jensen --- hw/nvme/ctrl.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c index fa48412ef48e..f5ee6bf260f1 100644 --- a/hw/nvme/ctrl.c +++ b/hw/nvme/ctrl.c @@ -8339,6 +8339,11 @@ static bool nvme_check_params(NvmeCtrl *n, Error **e= rrp) host_memory_backend_set_mapped(n->pmr.dev, true); } =20 + if (!n->params.mdts || ((1 << n->params.mdts) + 1) > IOV_MAX) { + error_setg(errp, "mdts exceeds IOV_MAX"); + return false; + } + if (n->params.zasl > n->params.mdts) { error_setg(errp, "zoned.zasl (Zone Append Size Limit) must be less= " "than or equal to mdts (Maximum Data Transfer Size)"); --=20 2.47.2