From nobody Mon Sep 16 19:39:48 2024 Delivered-To: importer2@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+importer2=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 165428659316048.797490246123175; Fri, 3 Jun 2022 13:03:13 -0700 (PDT) Received: from localhost ([::1]:45174 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nxDVk-0006Yj-MO for importer2@patchew.org; Fri, 03 Jun 2022 16:03:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59998) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nxDNN-0006A6-0v; Fri, 03 Jun 2022 15:54:30 -0400 Received: from wout1-smtp.messagingengine.com ([64.147.123.24]:37487) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nxDNL-0008Ak-Dz; Fri, 03 Jun 2022 15:54:28 -0400 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.west.internal (Postfix) with ESMTP id 40A283200957; Fri, 3 Jun 2022 15:54:24 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute3.internal (MEProxy); Fri, 03 Jun 2022 15:54:26 -0400 Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 3 Jun 2022 15:54:21 -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=1654286063; x= 1654372463; bh=twXrR4+kEWradYjllXM/BQhALki6oX/J6c6EC4q9/4c=; b=B gws57zIFxkqNiVMQHEKb1BZv+QcJZ0L7irEKgMOoyBweTFyU/3/pyZovfoPTm3lD 69mxGoTVYrLtP1vFsowDX+v4y9hTbQpoEe7hgBOKoHWvKa5F+kk3M4xtGmdaFBoP sg2wFh0HUWEgkrFOqwaJZDmeMCiu7wtMXs9AG96Tov/e8XRVEYpkDPgm80BlJz2P m9lDBCtZ2aK2NpF0o/L33iNA+TYPP3HjPrXAnRmMO9Iz9N7SUhg1SBdXy4t0pq6l sHwSQ9BFr9FC8Hl7ayTAAEjKuMVZqWX5wAhbl51gJyJm8NPUbAkjOccB24BEvGfr kr8Cn1lqQrTBsUk9KIzLg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding:date:date :feedback-id:feedback-id: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=1654286063; x=1654372463; bh=twXrR4+kEWrad YjllXM/BQhALki6oX/J6c6EC4q9/4c=; b=UoFmC/HPUKq5OGgB+407eiNYFtgD0 CuXhxboBehQ/pTeoRXaEX0y38eyeaQKyE6CbV0HAYnPv348HJqGD3MXjCsyMrdrP JcMmzHFQUunvpki4CwZsHhrQorQE1zJfG3JjQhcpv+Cxyp3fcNpDY1APL1BNJ8XI WgUmA5SBMXeTPE3PZko6aNKFqgSmc4xVzQRCitkqTuWc6R2IyCsVKt4kaZVQTvID SDuQbxpr5z6egxbpegZ3gp5nQIPBERG+ZOdrGD002NgvIdcEEfdWa9XsTVhyUlOi n0hFcmY0xbxz8EsQ9HOsuU+tdx4x3htSUrlZTrP9ghefS/KyCJtK5UNig== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrleeigddugedtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepmfhlrghu shculfgvnhhsvghnuceoihhtshesihhrrhgvlhgvvhgrnhhtrdgukheqnecuggftrfgrth htvghrnhepjefgieelgfeiveehkeeuveehheekfeevgeeigfehfefgjeejhefffeegudej udegnecuvehluhhsthgvrhfuihiivgepudenucfrrghrrghmpehmrghilhhfrhhomhepih htshesihhrrhgvlhgvvhgrnhhtrdgukh X-ME-Proxy: Feedback-ID: idc91472f:Fastmail From: Klaus Jensen To: qemu-devel@nongnu.org, Peter Maydell Cc: Yanan Wang , Hanna Reitz , Eduardo Habkost , Marcel Apfelbaum , libvir-list@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Fam Zheng , Stefan Hajnoczi , qemu-block@nongnu.org, Klaus Jensen , Keith Busch , Kevin Wolf , Klaus Jensen , Christoph Hellwig Subject: [PULL 05/11] hw/nvme: enforce common serial per subsystem Date: Fri, 3 Jun 2022 21:53:48 +0200 Message-Id: <20220603195354.705516-6-its@irrelevant.dk> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220603195354.705516-1-its@irrelevant.dk> References: <20220603195354.705516-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+importer2=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=64.147.123.24; envelope-from=its@irrelevant.dk; helo=wout1-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: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1654286594881100001 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 677381932569..e41771604f59 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.36.1