From nobody Sat Nov 15 07:40:53 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