From nobody Mon Feb 9 03:13:38 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 1651221878505991.3377893919318; Fri, 29 Apr 2022 01:44:38 -0700 (PDT) Received: from localhost ([::1]:54252 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nkMEu-0005bi-UR for importer@patchew.org; Fri, 29 Apr 2022 04:44:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39462) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nkM4Q-0000Li-1W; Fri, 29 Apr 2022 04:33:46 -0400 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:57145) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nkM4O-000592-EY; Fri, 29 Apr 2022 04:33:45 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 794ED5C00E9; Fri, 29 Apr 2022 04:33:43 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Fri, 29 Apr 2022 04:33:43 -0400 Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 29 Apr 2022 04:33:41 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irrelevant.dk; h=cc:cc:content-transfer-encoding:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm3; t=1651221223; x= 1651307623; bh=baudGR2g2UWMwMShaB9gPREnF8Fm2vNjxfHurmUA2YQ=; b=c pZVMHCOCKcRFpDUvZ4zq7lhgzwxncUJMrNBZ0g5u0+N9nDLQ1W9wS5rUisqmEMGn yQ4sihB7AcjhYWarQXjxuG/o3I0zwQHkgCttNnmDWE6YjbaHpWWnAsivCIp5eBmr L6pEPTqJZSBLwneJtBO9EGjHUPTDKJzUpGKlrBKHAf87WtcJXBiTjDzG7BNxtsvo a1cQWPAhRXQ4BSf1BdaETAGhgT6VHjwUb2tLYlZLLBBM9rFFA9bdNdbg2EITafrq vGdq+BSwaY+uaJYdew9yV6tOGhMPKSloc5U/Dx3k3EZK5fcosTnASX4qesvU1dFj pR02R4sY+mt0qwyVCr8aQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding:date:date :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t= 1651221223; x=1651307623; bh=baudGR2g2UWMwMShaB9gPREnF8Fm2vNjxfH urmUA2YQ=; b=fMMdj7av6W9Xd1sElEMsRSfzPJEDjpE1/RxYX/p/MUFOhiA61l4 1Go6arzi5rKXDNPpKNJ/Z9C8uKM2XVtCPoPZZ98N/gy2/ATB5dzReSNdgu2AbFpE uUOVXj7XlqHI/jKljFDt71YyrvEpGpKHfbHOK8zuxk3jWA/8FpKObmjVKnPhg0t2 gDL9D2vJQEUj/eoPjpC+fkf6rrm3Cs5cYYcRML3m3Il+5IaNYQNdqHVj9gFSK+9G vevCmZa8tnSspf+JqQZ7ym0zBJCdM0CrL2Degvs1t7Zy/CaAr7N6F6ysVF11I6Js WZTe+DbyDzBCAS5Gk7bK7ZQ07owwaofOf/g== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrudelgddtfecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhvfevufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefmlhgruhhs ucflvghnshgvnhcuoehithhssehirhhrvghlvghvrghnthdrughkqeenucggtffrrghtth gvrhhnpeejgfeilefgieevheekueevheehkeefveegiefgheefgfejjeehffefgedujedu geenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehith hssehirhhrvghlvghvrghnthdrughk X-ME-Proxy: From: Klaus Jensen To: qemu-devel@nongnu.org Subject: [PATCH v2 1/5] hw/nvme: enforce common serial per subsystem Date: Fri, 29 Apr 2022 10:33:32 +0200 Message-Id: <20220429083336.2201286-2-its@irrelevant.dk> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220429083336.2201286-1-its@irrelevant.dk> References: <20220429083336.2201286-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=66.111.4.29; envelope-from=its@irrelevant.dk; helo=out5-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, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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: , Cc: Eduardo Habkost , qemu-block@nongnu.org, Klaus Jensen , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Yanan Wang , Keith Busch , Luis Chamberlain , Klaus Jensen , Christoph Hellwig Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1651221882059100001 Content-Type: text/plain; charset="utf-8" From: Klaus Jensen The Identify Controller Serial Number (SN) is the serial number for the NVM subsystem and must be the same across all controller in the NVM subsystem. Enforce this. Reviewed-by: Christoph Hellwig Reviewed-by: Keith Busch Signed-off-by: Klaus Jensen --- hw/nvme/nvme.h | 1 + hw/nvme/subsys.c | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/hw/nvme/nvme.h b/hw/nvme/nvme.h index 739c8b8f7962..7f2e8f1b6491 100644 --- a/hw/nvme/nvme.h +++ b/hw/nvme/nvme.h @@ -48,6 +48,7 @@ typedef struct NvmeSubsystem { DeviceState parent_obj; NvmeBus bus; uint8_t subnqn[256]; + char *serial; =20 NvmeCtrl *ctrls[NVME_MAX_CONTROLLERS]; NvmeNamespace *namespaces[NVME_MAX_NAMESPACES + 1]; diff --git a/hw/nvme/subsys.c b/hw/nvme/subsys.c index fb58d639504e..691a90d20947 100644 --- a/hw/nvme/subsys.c +++ b/hw/nvme/subsys.c @@ -27,6 +27,13 @@ int nvme_subsys_register_ctrl(NvmeCtrl *n, Error **errp) return -1; } =20 + if (!subsys->serial) { + subsys->serial =3D g_strdup(n->params.serial); + } else if (strcmp(subsys->serial, n->params.serial)) { + error_setg(errp, "invalid controller serial"); + return -1; + } + subsys->ctrls[cntlid] =3D n; =20 for (nsid =3D 1; nsid < ARRAY_SIZE(subsys->namespaces); nsid++) { --=20 2.35.1