From nobody Sat May 30 18:34:26 2026 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=1779106179; cv=none; d=zohomail.com; s=zohoarc; b=NbfltPx/WbbkEkN5MS0/Z7ggAplS74ReJskr00bJwByHhrxpYwdhnQJNDLTiXyOubaqVB7L3gjHQkzhbe65QWG1k45OCtUNFJM+HtLj3lskOIsDaCzWx55fVVRn+rcjqnWP+YOPpSmvaCDXom2G2jCAQmHh6gf2Tx0giG+CiJe0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779106179; h=Content-Type: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=XUOS6O5xtnbkldc7d05Clng93PdHkPfB5ConI4/RV5I=; b=koCWnTYwQk10TlYNhj+qZd59mY+9xVs2CtC0iNCVJblF6jbREnalgRzQ+R9a+Sm7lsy8H4gB6Q2pXz75eJg00QZ5aJmw6NlXOK1yi91nSO2EQ1P0BeVU/G58yWYxZh2ASNIp3bjStONu+ZgsghVfQBJm0kbCnAxm8RCgnE8C3uU= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177910617913328.514434955689353; Mon, 18 May 2026 05:09:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wOwmh-0003bX-8M; Mon, 18 May 2026 08:09:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wOwll-0003Hs-KP; Mon, 18 May 2026 08:08:30 -0400 Received: from fout-b4-smtp.messagingengine.com ([202.12.124.147]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wOwlj-0006wV-T5; Mon, 18 May 2026 08:08:25 -0400 Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41]) by mailfout.stl.internal (Postfix) with ESMTP id 2060A1D00139; Mon, 18 May 2026 08:08:22 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-01.internal (MEProxy); Mon, 18 May 2026 08:08:22 -0400 Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 18 May 2026 08:08:18 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irrelevant.dk; h=cc:cc:content-transfer-encoding:content-type: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=1779106101; x=1779192501; bh=XUOS6O5xtnbkldc7d05Clng93PdHkPfB 5ConI4/RV5I=; b=1vRX/ANn9IctbyKE4Vociatl1bzOAxNuHVfJvHV2lp4hsoP7 FjTPpAjJ8EE1boYdfl0vZtQLHtjks/5R/syiurPG93DOj/Qi0cOC3n9aagE9Wfm1 92RnenPnJSf/YebytwW1aVK8kd8U4c3KtTonzfpYipA09spSnGG7tjS0ohKyKzQQ ZCps0VB+PopfSOg6R6Ir1fbRzKSNZ+hdPK5a8nNfEuMNFLazdOvUPsKQuWIZBEjC K0NNzPV+964S7rZJ/p53cotx7kbAkiCfnb9xLbJK3G41iMCmDZT0jJqkPf/O56f0 xd30da2qq4fJUEgAAjRh1N61NEjYOjuLANrGpw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type: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=1779106101; x= 1779192501; bh=XUOS6O5xtnbkldc7d05Clng93PdHkPfB5ConI4/RV5I=; b=m Vm1BPoDywxskT2eZOglCcimOYl2raNSVSJTfHeDIbRKY6cVHYBo+W6ey7J3AUKvu ALmUQf4b2Wg46quMRJoIF3zEDF1hTLVfdbiR0oFpcSVNZSZzyU4pMqhZzV4pqS3i qVORg/1VSeTIJi/INGVtAk77L09cwNU1VeuF1ZM1EGkDbRa6kEDguNfZAsWGAvGm Yo3x4m6ntSkM17BXs0nFtWts6T95qWLrodhCU26gc4zv4qSEXT2wM4VQ9X73ZOCV qzAzfXvn1c42ZAjsw8hudTBPQpx3XYKpO6Pk8Mo0ermGTLvrKzVscjM83Zkh8h8S C/YD6/n1QaYV4xaIHPWbw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgddufeekkeefucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpefmlhgruhhs ucflvghnshgvnhcuoehithhssehirhhrvghlvghvrghnthdrughkqeenucggtffrrghtth gvrhhnpeefvedtueetueduffevgffgtdeftdeuleffhfeigeffkeegfeejfeffteejiefh vdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehith hssehirhhrvghlvghvrghnthdrughkpdhnsggprhgtphhtthhopeduvddpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepqhgvmhhuqdguvghvvghlsehnohhnghhnuhdrohhrgh dprhgtphhtthhopehpvghtvghrrdhmrgihuggvlhhlsehlihhnrghrohdrohhrghdprhgt phhtthhopegsvghrrhgrnhhgvgesrhgvughhrghtrdgtohhmpdhrtghpthhtohepkhdrjh gvnhhsvghnsehsrghmshhunhhgrdgtohhmpdhrtghpthhtohepkhgsuhhstghhsehkvghr nhgvlhdrohhrghdprhgtphhtthhopehithhssehirhhrvghlvghvrghnthdrughkpdhrtg hpthhtohepfhhoshhsseguvghfmhgrtghrohdrihhtpdhrtghpthhtohepshhtvghfrghn hhgrsehrvgguhhgrthdrtghomhdprhgtphhtthhopehfrghmsegvuhhphhhonhdrnhgvth X-ME-Proxy: Feedback-ID: idc91472f:Fastmail From: Klaus Jensen To: qemu-devel@nongnu.org Cc: Peter Maydell , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Klaus Jensen , Keith Busch , Klaus Jensen , Jesper Devantier , Stefan Hajnoczi , Fam Zheng , Kevin Wolf , Hanna Reitz , qemu-block@nongnu.org Subject: [PULL 1/5] include/block: define constants for NVME string fields Date: Mon, 18 May 2026 14:07:44 +0200 Message-ID: <20260518120748.14831-2-its@irrelevant.dk> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260518120748.14831-1-its@irrelevant.dk> References: <20260518120748.14831-1-its@irrelevant.dk> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=lists1p.gnu.org; Received-SPF: pass client-ip=202.12.124.147; envelope-from=its@irrelevant.dk; helo=fout-b4-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 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: qemu development 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: 1779106183136158500 From: Daniel P. Berrang=C3=A9 The version, model and serial fields accept fixed length strings. Add constants to enable user supplied strings to be validated. Signed-off-by: Daniel P. Berrang=C3=A9 Signed-off-by: Klaus Jensen --- include/block/nvme.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/include/block/nvme.h b/include/block/nvme.h index 9d7159ed7a7a..e4e7be51205e 100644 --- a/include/block/nvme.h +++ b/include/block/nvme.h @@ -1134,12 +1134,16 @@ enum NvmeIdCns { NVME_ID_CNS_CS_IND_NS_ALLOCATED =3D 0x1f, }; =20 +#define NVME_ID_CTRL_SN_MAX_LEN 20 +#define NVME_ID_CTRL_MN_MAX_LEN 40 +#define NVME_ID_CTRL_FR_MAX_LEN 8 + typedef struct QEMU_PACKED NvmeIdCtrl { uint16_t vid; uint16_t ssvid; - uint8_t sn[20]; - uint8_t mn[40]; - uint8_t fr[8]; + uint8_t sn[NVME_ID_CTRL_SN_MAX_LEN]; + uint8_t mn[NVME_ID_CTRL_MN_MAX_LEN]; + uint8_t fr[NVME_ID_CTRL_FR_MAX_LEN]; uint8_t rab; uint8_t ieee[3]; uint8_t cmic; --=20 2.53.0 From nobody Sat May 30 18:34:26 2026 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=1779106189; cv=none; d=zohomail.com; s=zohoarc; b=el4FMdx+7KIWEtuybR9d4VVJbkasc0iW+dCoccuV2epRQyPxQnwm3WVKHNIfFKNvdMDy7jHLLBOETDxNyN9Lm5ILoiNKM6hzWGkOCJxuXI9ZpmNQ4SUy1Q9Qf9QkSqoTfX/3salORq7R3iE+0zbrabFmE/FeuO88zwesURIW5LY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779106189; h=Content-Type: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=pqMNEYCNy79Tbh4L38XZx7k0q6H5dcq6P54JV6pMWIc=; b=ALECi1/gDsf7BPJ0ZkWnezIUdMAVBPGjxdNUoHfnGTDuzrWfJzgzQjAWY9p+FfWcUS4dUxNAsHhGTblzdXp4s4LV9aj3Tg3a6V4s4Em8O5AkqX+HgsSATgBLSDyJYQzcJPTLVRqoSwKzSxzLYS5M3f5kbiimKV0z0xx0vfzqeus= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1779106188396394.68829037663966; Mon, 18 May 2026 05:09:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wOwmq-0003sB-6R; Mon, 18 May 2026 08:09:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wOwlo-0003I4-6g; Mon, 18 May 2026 08:08:30 -0400 Received: from fhigh-b6-smtp.messagingengine.com ([202.12.124.157]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wOwlm-0006xZ-NU; Mon, 18 May 2026 08:08:27 -0400 Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46]) by mailfhigh.stl.internal (Postfix) with ESMTP id F0DE97A00A4; Mon, 18 May 2026 08:08:24 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-06.internal (MEProxy); Mon, 18 May 2026 08:08:25 -0400 Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 18 May 2026 08:08:22 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irrelevant.dk; h=cc:cc:content-transfer-encoding:content-type: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=1779106104; x=1779192504; bh=pqMNEYCNy79Tbh4L38XZx7k0q6H5dcq6 P54JV6pMWIc=; b=hhFuTaySt/Hiv3eZt+hT0cWPJINOUfDLniXkOOLbXWZaQWRM FGEPRERHJcnAOp3ByWYfKefQYRcXeiW5w2x94d9wWXdXgz1K97+W4nefciLSOQO/ m60+lmsKhfKp80UUYxhbuo9ArWnXhaaconJyJYoP0LtREFzJO1YufdeVvs+jbOwN 8LpFLmc/z+wmTni9fUEX3dnqqBkxvgE4YbN2PcL6xDDS7BtBkiGp4ebWGPkTcQ+i jO6NAzBqj5pT04qfhm0hLpGcO2cqA6qPhxbmUMIYfzXknFRls+J67hW5GDJfuxa2 xHj3CnAAwIp4AiWkJ2TdI/CdqMIHLrkZpT+Gag== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type: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=1779106104; x= 1779192504; bh=pqMNEYCNy79Tbh4L38XZx7k0q6H5dcq6P54JV6pMWIc=; b=q Hk0Tx6z7JG1Wn+K9CpKou/+YGOA2U2JftytA2Oh6MfnZINx6f+tGBOMnlyW1cwPp S3AAWq6KCm440oN2gSbleEKfuVW7wuTCKNWyChlbW4Deu7nP8qSyx7FXZZDq7l6p zeb8ErUPR7KbK6QiyLWKtn3jnaviPJE0SMUgKaHBrX8rf90I8rxbpzOIxv1FTmjA KfM59/XQ0EenPptMiIhBSVolwedV96nQnkn4yMTUG3NZTYfsFhg60JnifXYuQIxF PR4dWb+h+ZZPYitwoinO6s849VlUHU039sich1qoQtB3Vbnf3213CHwrYtv1V/3S x+IRd5cQDJ7uGuobUOpIA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgddufeekkeefucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpefmlhgruhhs ucflvghnshgvnhcuoehithhssehirhhrvghlvghvrghnthdrughkqeenucggtffrrghtth gvrhhnpeefvedtueetueduffevgffgtdeftdeuleffhfeigeffkeegfeejfeffteejiefh vdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehith hssehirhhrvghlvghvrghnthdrughkpdhnsggprhgtphhtthhopeekpdhmohguvgepshhm thhpohhuthdprhgtphhtthhopehqvghmuhdquggvvhgvlhesnhhonhhgnhhurdhorhhgpd hrtghpthhtohepphgvthgvrhdrmhgrhiguvghllheslhhinhgrrhhordhorhhgpdhrtghp thhtohepsggvrhhrrghnghgvsehrvgguhhgrthdrtghomhdprhgtphhtthhopehkrdhjvg hnshgvnhesshgrmhhsuhhnghdrtghomhdprhgtphhtthhopehksghushgthheskhgvrhhn vghlrdhorhhgpdhrtghpthhtohepihhtshesihhrrhgvlhgvvhgrnhhtrdgukhdprhgtph htthhopehfohhsshesuggvfhhmrggtrhhordhithdprhgtphhtthhopehqvghmuhdqsghl ohgtkhesnhhonhhgnhhurdhorhhg X-ME-Proxy: Feedback-ID: idc91472f:Fastmail From: Klaus Jensen To: qemu-devel@nongnu.org Cc: Peter Maydell , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Klaus Jensen , Keith Busch , Klaus Jensen , Jesper Devantier , qemu-block@nongnu.org Subject: [PULL 2/5] hw/nvme: report error for oversized 'serial' parameter Date: Mon, 18 May 2026 14:07:45 +0200 Message-ID: <20260518120748.14831-3-its@irrelevant.dk> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260518120748.14831-1-its@irrelevant.dk> References: <20260518120748.14831-1-its@irrelevant.dk> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=lists1p.gnu.org; Received-SPF: pass client-ip=202.12.124.157; envelope-from=its@irrelevant.dk; helo=fhigh-b6-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 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: qemu development 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: 1779106190202158500 From: Daniel P. Berrang=C3=A9 The 'serial' accepted by the NVME device is at most 20 characters long. An over-sized user supplied value should be reported rather than silently truncated. Signed-off-by: Daniel P. Berrang=C3=A9 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 be6c7028cb58..2556aced2a47 100644 --- a/hw/nvme/ctrl.c +++ b/hw/nvme/ctrl.c @@ -8602,6 +8602,11 @@ static bool nvme_check_params(NvmeCtrl *n, Error **e= rrp) error_setg(errp, "serial property not set"); return false; } + if (strlen(params->serial) > NVME_ID_CTRL_SN_MAX_LEN) { + error_setg(errp, "'serial' parameter '%s' can be at most '%d' char= acters", + params->serial, NVME_ID_CTRL_SN_MAX_LEN); + return false; + } =20 if (params->mqes < 1) { error_setg(errp, "mqes property cannot be less than 1"); --=20 2.53.0 From nobody Sat May 30 18:34:26 2026 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=1779106191; cv=none; d=zohomail.com; s=zohoarc; b=Jau6MHS4wBN0eS0UymqXrrDK15MrMLWNaV4FCvGhWEi/Q6RnIItU+sEhRWLNUUGLzTsklMkDj03Dx79UOphGC7sf+ZsdoD/fE3fBftdjqRUVI5I395WUnCUnw/L/a6P3HFo3RgsqSO5rzoQUvJAu0l632fmuKqJf0p6Uzdqpijw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779106191; h=Content-Type: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=n/a+USxh8EdDUhVbtp23PdkSgDZISod47MBbJ4FXVR8=; b=guZTjS81E7pSPSgwTi0cyW1cDhZOc3hnEfkrJ0J8a8sZVDdOz55YFOA+/MFB8QqNMMeWYT3xJO5g0UeT3Jpxj9wLoZkI365ukM/m1wiWWLFOnhlwbmIBlFi3NdoEEowMWmpZEKt5UywBMorWQjRM6q97YNRqYKeHwau0of0ufxU= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1779106191792118.70758988233797; Mon, 18 May 2026 05:09:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wOwmx-00045Y-L0; Mon, 18 May 2026 08:09:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wOwlq-0003KG-IQ; Mon, 18 May 2026 08:08:32 -0400 Received: from fhigh-b6-smtp.messagingengine.com ([202.12.124.157]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wOwlo-00070w-92; Mon, 18 May 2026 08:08:29 -0400 Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41]) by mailfhigh.stl.internal (Postfix) with ESMTP id F22BB7A00C5; Mon, 18 May 2026 08:08:26 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-01.internal (MEProxy); Mon, 18 May 2026 08:08:27 -0400 Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 18 May 2026 08:08:25 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irrelevant.dk; h=cc:cc:content-transfer-encoding:content-type: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=1779106106; x=1779192506; bh=n/a+USxh8EdDUhVbtp23PdkSgDZISod4 7MBbJ4FXVR8=; b=M8ZhGKHl014CICyzN5s6Th6kqYjBpinA8rCEriGTyDV70Esb h/nnBeGuWbmQyouFBFWNj+B0Zp579/N54WFDCn3LBoM7WblyhRweZejk20bVwB8D FjcimNC1S6/1nGqccqky4kXbHE3SEJNlArow7ErTTydqhgJu5SJKWeBvqZ6rOPP7 kI/g2VdpMNJjWec2ZohV+WBOhgb9iZfYJ++763BT9zqHOUJTnn+enk0Uw43GxjQK 1SI5dBufxp7MYQR29b1zvexNyW7IcxovcgWSWXX3wehKQYv/YLQwZVdEVa0nfWOm k+gveAzCZalmf+X50rS696oPIiaG36QpF+YZkw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type: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=1779106106; x= 1779192506; bh=n/a+USxh8EdDUhVbtp23PdkSgDZISod47MBbJ4FXVR8=; b=s BLQQFrHwJNao55jYjOO2JoaugCE2iO6aOTzgxVeXChnvwCKfFLoT0R07GPMx2/52 rZzXsMhZ1/u/mr2978hNkKsYtFlOf4Z2LRG6RZAv3nPr6Rngv1rp1aiTXnTVZqAB G23CHqngN2gL+xqm0Wi1kTQNb75MXuFCUdmEKEFf0gIUJcccizxrcjn1s4YATuno lV+Hmxc2OhGI/UfuiagjgAacedHRE56tuVW/+MH+tJnWsl3jO5iYjtrv2pgbz6I/ 9Sj+XJxMOX3kFaEcSu5kw0itkIq0UBX+7wxY4vtx3P6bhHIFtdzyb4ewXWxCrZRS KOitAlLCqZn7PWniVc3ng== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgddufeekkeefucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpefmlhgruhhs ucflvghnshgvnhcuoehithhssehirhhrvghlvghvrghnthdrughkqeenucggtffrrghtth gvrhhnpeefvedtueetueduffevgffgtdeftdeuleffhfeigeffkeegfeejfeffteejiefh vdenucevlhhushhtvghrufhiiigvpedunecurfgrrhgrmhepmhgrihhlfhhrohhmpehith hssehirhhrvghlvghvrghnthdrughkpdhnsggprhgtphhtthhopeelpdhmohguvgepshhm thhpohhuthdprhgtphhtthhopehqvghmuhdquggvvhgvlhesnhhonhhgnhhurdhorhhgpd hrtghpthhtohepphgvthgvrhdrmhgrhiguvghllheslhhinhgrrhhordhorhhgpdhrtghp thhtohepsggvrhhrrghnghgvsehrvgguhhgrthdrtghomhdprhgtphhtthhopehkrdhjvg hnshgvnhesshgrmhhsuhhnghdrtghomhdprhgtphhtthhopehksghushgthheskhgvrhhn vghlrdhorhhgpdhrtghpthhtohepihhtshesihhrrhgvlhgvvhgrnhhtrdgukhdprhgtph htthhopehfohhsshesuggvfhhmrggtrhhordhithdprhgtphhtthhopehpihgvrhhrihgt khdrsghouhhvihgvrhesohhsshdrqhhurghltghomhhmrdgtohhmpdhrtghpthhtohepqh gvmhhuqdgslhhotghksehnohhnghhnuhdrohhrgh X-ME-Proxy: Feedback-ID: idc91472f:Fastmail From: Klaus Jensen To: qemu-devel@nongnu.org Cc: Peter Maydell , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Klaus Jensen , Keith Busch , Klaus Jensen , Jesper Devantier , Pierrick Bouvier , qemu-block@nongnu.org Subject: [PULL 3/5] hw/nvme: add user controlled 'model' property Date: Mon, 18 May 2026 14:07:46 +0200 Message-ID: <20260518120748.14831-4-its@irrelevant.dk> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260518120748.14831-1-its@irrelevant.dk> References: <20260518120748.14831-1-its@irrelevant.dk> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=lists1p.gnu.org; Received-SPF: pass client-ip=202.12.124.157; envelope-from=its@irrelevant.dk; helo=fhigh-b6-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 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: qemu development 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: 1779106194356154100 From: Daniel P. Berrang=C3=A9 This enables overriding the built in default "QEMU NVMe Ctrl" string with a user specified string. The value can be at most 40 characters in length. Signed-off-by: Daniel P. Berrang=C3=A9 Signed-off-by: Klaus Jensen --- docs/system/devices/nvme.rst | 5 +++++ hw/nvme/ctrl.c | 14 ++++++++++++-- hw/nvme/nvme.h | 1 + 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/docs/system/devices/nvme.rst b/docs/system/devices/nvme.rst index 6509b35fcb4e..109c01a70d50 100644 --- a/docs/system/devices/nvme.rst +++ b/docs/system/devices/nvme.rst @@ -60,6 +60,11 @@ parameters. the SMART / Health information extended log become available in the controller. We emulate version 5 of this log page. =20 +``model`` (default: ``QEMU NVMe Ctrl``) + Override the default reported model, which can be used when needing + to more closely impersonate a particular device type. The model name + can be a maximum of 40 characters in length. + Additional Namespaces --------------------- =20 diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c index 2556aced2a47..4822bc0a99b1 100644 --- a/hw/nvme/ctrl.c +++ b/hw/nvme/ctrl.c @@ -43,7 +43,8 @@ * atomic.dn=3D, \ * atomic.awun, \ * atomic.awupf, \ - * subsys=3D + * subsys=3D, \ + * model=3D * -device nvme-ns,drive=3D,bus=3D,nsid=3D,\ * zoned=3D, \ * subsys=3D,shared=3D, \ @@ -8608,6 +8609,13 @@ static bool nvme_check_params(NvmeCtrl *n, Error **e= rrp) return false; } =20 + if (params->model && + strlen(params->model) > NVME_ID_CTRL_MN_MAX_LEN) { + error_setg(errp, "'model' parameter '%s' can be at most '%d' chara= cters", + params->model, NVME_ID_CTRL_MN_MAX_LEN); + return false; + } + if (params->mqes < 1) { error_setg(errp, "mqes property cannot be less than 1"); return false; @@ -9101,7 +9109,8 @@ static void nvme_init_ctrl(NvmeCtrl *n, PCIDevice *pc= i_dev) =20 id->vid =3D cpu_to_le16(pci_get_word(pci_conf + PCI_VENDOR_ID)); id->ssvid =3D cpu_to_le16(pci_get_word(pci_conf + PCI_SUBSYSTEM_VENDOR= _ID)); - strpadcpy((char *)id->mn, sizeof(id->mn), "QEMU NVMe Ctrl", ' '); + strpadcpy((char *)id->mn, sizeof(id->mn), + n->params.model ? n->params.model : "QEMU NVMe Ctrl", ' '); strpadcpy((char *)id->fr, sizeof(id->fr), QEMU_VERSION, ' '); strpadcpy((char *)id->sn, sizeof(id->sn), n->params.serial, ' '); =20 @@ -9381,6 +9390,7 @@ static const Property nvme_props[] =3D { DEFINE_PROP_LINK("subsys", NvmeCtrl, subsys, TYPE_NVME_SUBSYS, NvmeSubsystem *), DEFINE_PROP_STRING("serial", NvmeCtrl, params.serial), + DEFINE_PROP_STRING("model", NvmeCtrl, params.model), DEFINE_PROP_UINT32("cmb_size_mb", NvmeCtrl, params.cmb_size_mb, 0), DEFINE_PROP_UINT32("num_queues", NvmeCtrl, params.num_queues, 0), DEFINE_PROP_UINT32("max_ioqpairs", NvmeCtrl, params.max_ioqpairs, 64), diff --git a/hw/nvme/nvme.h b/hw/nvme/nvme.h index d66f7dc82d5c..ebf1fcfdcde0 100644 --- a/hw/nvme/nvme.h +++ b/hw/nvme/nvme.h @@ -542,6 +542,7 @@ typedef struct NvmeCQueue { =20 typedef struct NvmeParams { char *serial; + char *model; uint32_t num_queues; /* deprecated since 5.1 */ uint32_t max_ioqpairs; uint16_t msix_qsize; --=20 2.53.0 From nobody Sat May 30 18:34:26 2026 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=1779106184; cv=none; d=zohomail.com; s=zohoarc; b=R237cd8bZ6nYPuBqjfN3laXdhRZCdy4rkEjEb2tNpYHL7zp9lAIn7jcyhqvbWem5HS0pthtVOr3DW+p+OkDgklLzMyjYvPs1VcxqpZUgNuz0dSEySw8IOlAfAFBx3XzGZc/5tGECs34IsMSOEsT/NIjPWPC471Rh5nl/E9sxUxk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779106184; h=Content-Type: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=R9FXlLmUfHZYMjYxeo3bsF4ZrgUGQXj7M9rLfpvDIts=; b=TAgqnmy4FbgJRFStqpcFnHOSHMOey+fwp2gRJnZdVd9t/4QlGbP3Wv/zOH8+Wjb3Woej0Q2FISqC62rW20Jc3wHCq2lv9Upam02o7D0hiDy86rAN8dT7f3xbX/IZLdYx4LXyBSFTt/xLABcfEPPXsRGRr7jwYAH8FLqU4eOZl6c= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177910618402361.70043071922794; Mon, 18 May 2026 05:09:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wOwmy-0004Fk-EL; Mon, 18 May 2026 08:09:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wOwlu-0003MS-3G; Mon, 18 May 2026 08:08:34 -0400 Received: from fout-b4-smtp.messagingengine.com ([202.12.124.147]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wOwlr-00074A-2x; Mon, 18 May 2026 08:08:33 -0400 Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44]) by mailfout.stl.internal (Postfix) with ESMTP id 5001C1D00134; Mon, 18 May 2026 08:08:29 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-04.internal (MEProxy); Mon, 18 May 2026 08:08:29 -0400 Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 18 May 2026 08:08:27 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irrelevant.dk; h=cc:cc:content-transfer-encoding:content-type: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=1779106109; x=1779192509; bh=R9FXlLmUfHZYMjYxeo3bsF4ZrgUGQXj7 M9rLfpvDIts=; b=lGA/dYvgGMhIdZzY7621qaFFVb78przulj0Qu4T3LFiPzWeT X/52zup7muTI02viSgugmMMDRQpB8HJ/aA6JxPALfgVkhuxkYjE9pxz8kFeVekuV BdI4AxTEP6VBpYUgj0+GawbiPvZB/f/b7dRed6vD2XJD5cAbWuqeo6kAOCCFQC4P FKviggywF/eQyNUCS3UN0elAMcJrQ/2i1hLwwgkaXQEA4b0Hobb4g6Axp4o8hDIK lZLUZIWGHaGYic4ivntAk6Vs8z40igZvcPqVZlumTLioSmUsQ2B+wJvtChO/l4+K Y0w6ZBmxjH2bXPw/UYUqpPzxlye3T7U8kOAG9A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type: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=1779106109; x= 1779192509; bh=R9FXlLmUfHZYMjYxeo3bsF4ZrgUGQXj7M9rLfpvDIts=; b=A C4NfvOi0TqUoKp3GZxPzgK9Xy8NU0Jf5Aakfc2fMZCIVKrrFE5Hp80GHJwxTZVZ8 Zdm4UR9M44eUSVxXiFyrx3EhaSCsSWBCeNHTMqXI6TItu8tDww0Q8ngXJ0yby0SP XT3QNABmgFcVwMHaM1zjDE4izLqSTLW8FUMeDEIz0+numqTz0IOqLX4kEPyFUSC/ c1yp0wzjSUbeEap3YXXvtXWcAfLEMBAlP5hgRntk2Mvn10r1tpcWlptO1yVa7wrj lNbTI8EfLOK7GsVz1kO/ZgeHT9XaTYHQDgP+MKcbGxtn8/M03KsGQ13Hxq/4vgmU ZQWZG2S8hTU6rKj7pmLNg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgddufeekkeefucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpefmlhgruhhs ucflvghnshgvnhcuoehithhssehirhhrvghlvghvrghnthdrughkqeenucggtffrrghtth gvrhhnpeefvedtueetueduffevgffgtdeftdeuleffhfeigeffkeegfeejfeffteejiefh vdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehith hssehirhhrvghlvghvrghnthdrughkpdhnsggprhgtphhtthhopeelpdhmohguvgepshhm thhpohhuthdprhgtphhtthhopehqvghmuhdquggvvhgvlhesnhhonhhgnhhurdhorhhgpd hrtghpthhtohepphgvthgvrhdrmhgrhiguvghllheslhhinhgrrhhordhorhhgpdhrtghp thhtohepsggvrhhrrghnghgvsehrvgguhhgrthdrtghomhdprhgtphhtthhopehkrdhjvg hnshgvnhesshgrmhhsuhhnghdrtghomhdprhgtphhtthhopehksghushgthheskhgvrhhn vghlrdhorhhgpdhrtghpthhtohepihhtshesihhrrhgvlhgvvhgrnhhtrdgukhdprhgtph htthhopehfohhsshesuggvfhhmrggtrhhordhithdprhgtphhtthhopehpihgvrhhrihgt khdrsghouhhvihgvrhesohhsshdrqhhurghltghomhhmrdgtohhmpdhrtghpthhtohepqh gvmhhuqdgslhhotghksehnohhnghhnuhdrohhrgh X-ME-Proxy: Feedback-ID: idc91472f:Fastmail From: Klaus Jensen To: qemu-devel@nongnu.org Cc: Peter Maydell , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Klaus Jensen , Keith Busch , Klaus Jensen , Jesper Devantier , Pierrick Bouvier , qemu-block@nongnu.org Subject: [PULL 4/5] hw/nvme: add user controlled 'firmware-version' property Date: Mon, 18 May 2026 14:07:47 +0200 Message-ID: <20260518120748.14831-5-its@irrelevant.dk> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260518120748.14831-1-its@irrelevant.dk> References: <20260518120748.14831-1-its@irrelevant.dk> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=lists1p.gnu.org; Received-SPF: pass client-ip=202.12.124.147; envelope-from=its@irrelevant.dk; helo=fout-b4-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 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: qemu development 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: 1779106185741154100 From: Daniel P. Berrang=C3=A9 This enables overriding the built in default QEMU project version string with a user specified string. The value can be at most 8 characters in length. Signed-off-by: Daniel P. Berrang=C3=A9 Signed-off-by: Klaus Jensen --- docs/system/devices/nvme.rst | 5 +++++ hw/nvme/ctrl.c | 14 ++++++++++++-- hw/nvme/nvme.h | 1 + 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/docs/system/devices/nvme.rst b/docs/system/devices/nvme.rst index 109c01a70d50..98a44010438b 100644 --- a/docs/system/devices/nvme.rst +++ b/docs/system/devices/nvme.rst @@ -65,6 +65,11 @@ parameters. to more closely impersonate a particular device type. The model name can be a maximum of 40 characters in length. =20 +``firmware-version`` (default: current QEMU version number) + Override the default reported firmware version, which can be used when + needing to more closely impersonate a particular device type. The version + can be a maximum of 8 characters in length. + Additional Namespaces --------------------- =20 diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c index 4822bc0a99b1..5b03929451d0 100644 --- a/hw/nvme/ctrl.c +++ b/hw/nvme/ctrl.c @@ -44,7 +44,8 @@ * atomic.awun, \ * atomic.awupf, \ * subsys=3D, \ - * model=3D + * model=3D, \ + * firmware-version=3D * -device nvme-ns,drive=3D,bus=3D,nsid=3D,\ * zoned=3D, \ * subsys=3D,shared=3D, \ @@ -8616,6 +8617,13 @@ static bool nvme_check_params(NvmeCtrl *n, Error **e= rrp) return false; } =20 + if (params->firmware_version && + strlen(params->firmware_version) > NVME_ID_CTRL_FR_MAX_LEN) { + error_setg(errp, "'firmware-version' parameter '%s' can be at most= '%d' characters", + params->firmware_version, NVME_ID_CTRL_FR_MAX_LEN); + return false; + } + if (params->mqes < 1) { error_setg(errp, "mqes property cannot be less than 1"); return false; @@ -9111,7 +9119,8 @@ static void nvme_init_ctrl(NvmeCtrl *n, PCIDevice *pc= i_dev) id->ssvid =3D cpu_to_le16(pci_get_word(pci_conf + PCI_SUBSYSTEM_VENDOR= _ID)); strpadcpy((char *)id->mn, sizeof(id->mn), n->params.model ? n->params.model : "QEMU NVMe Ctrl", ' '); - strpadcpy((char *)id->fr, sizeof(id->fr), QEMU_VERSION, ' '); + strpadcpy((char *)id->fr, sizeof(id->fr), + n->params.firmware_version ? n->params.firmware_version : QE= MU_VERSION, ' '); strpadcpy((char *)id->sn, sizeof(id->sn), n->params.serial, ' '); =20 id->cntlid =3D cpu_to_le16(n->cntlid); @@ -9391,6 +9400,7 @@ static const Property nvme_props[] =3D { NvmeSubsystem *), DEFINE_PROP_STRING("serial", NvmeCtrl, params.serial), DEFINE_PROP_STRING("model", NvmeCtrl, params.model), + DEFINE_PROP_STRING("firmware-version", NvmeCtrl, params.firmware_versi= on), DEFINE_PROP_UINT32("cmb_size_mb", NvmeCtrl, params.cmb_size_mb, 0), DEFINE_PROP_UINT32("num_queues", NvmeCtrl, params.num_queues, 0), DEFINE_PROP_UINT32("max_ioqpairs", NvmeCtrl, params.max_ioqpairs, 64), diff --git a/hw/nvme/nvme.h b/hw/nvme/nvme.h index ebf1fcfdcde0..5ef3ebee29e5 100644 --- a/hw/nvme/nvme.h +++ b/hw/nvme/nvme.h @@ -543,6 +543,7 @@ typedef struct NvmeCQueue { typedef struct NvmeParams { char *serial; char *model; + char *firmware_version; uint32_t num_queues; /* deprecated since 5.1 */ uint32_t max_ioqpairs; uint16_t msix_qsize; --=20 2.53.0 From nobody Sat May 30 18:34:26 2026 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=1779106195; cv=none; d=zohomail.com; s=zohoarc; b=KCvkwyIl6e0/5puYu3EfZyOpWr9qGMPEkJp+7vuSt98AlI1mwahuyVMc5md2Zv3fltbi1KCJgT87nKFrrLGc+wd6zA0d++z5p2sUzqKM5YTrwUqnHKaST1opE1sg9tNED2dX0ZnXpPaf6rXRzIpWoeJq2/4Oe6qmOgFFCQ3JLqg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779106195; 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=tbXFTi8YS7dwA1aT84yOrBaUVntxEmAQl1rJumHbdj4=; b=nKrXcAMa8dmhQRJSjRxeobmoALkxGBVIVTG3x5PHXopb9E2MjMVUMGxoxB744NBf5nm7DMq9QyyyRjognpJuSJvipK5myGPEl257MBhqRfsyK14KIS7AjPOed+C26GKpU1nD7zsKyI3L1jnhmmmBiO6FEesFFrMmE4dehvw0sLY= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1779106195207478.29552757594615; Mon, 18 May 2026 05:09:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wOwmx-00042d-3a; Mon, 18 May 2026 08:09:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wOwlu-0003NF-Ns; Mon, 18 May 2026 08:08:36 -0400 Received: from fhigh-b6-smtp.messagingengine.com ([202.12.124.157]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wOwlt-00079n-6f; Mon, 18 May 2026 08:08:34 -0400 Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43]) by mailfhigh.stl.internal (Postfix) with ESMTP id 6C9427A00A4; Mon, 18 May 2026 08:08:31 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-03.internal (MEProxy); Mon, 18 May 2026 08:08:31 -0400 Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 18 May 2026 08:08:29 -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=1779106111; x= 1779192511; bh=tbXFTi8YS7dwA1aT84yOrBaUVntxEmAQl1rJumHbdj4=; b=L qXQqM9lExpkh7M7lvxYI+JIcK90g03aDvHKgNmsUI//jW9xIwxem3YRF4CvxtbWo j3n4mEAUkdnsFfCBRUmWYs5KUnO9b/7qAF3teXv8+MUgJGauIMfNn3lzUXPnv9Ld Fz9lQvSz4XCP68lk1IZ8lrxjV0TkY8XhNskmsmVnd1hIekRP7iVqIPdo8K4v7RMM P6mFMxHWF9iYfd8sBnBHqFZ+Dr1yqCCoXG4PQPMtmudG7rGO94m6Qig3su++tUWJ h/zwtiI7SCSq6MyIYBGU3l5MTfiZffqICU9leBf7mJwEr4stILd1CMruRwuocazF 6Xi9LJH1jbVHLgFUgD/mA== 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=1779106111; x=1779192511; bh=t bXFTi8YS7dwA1aT84yOrBaUVntxEmAQl1rJumHbdj4=; b=oYlsUdkol+RRw9nHB 8dXJlesmKxMmcC9GlPBqnxkq3lCwIZr2Fbtok+ORA5kut/yvqSJo4gEULwCenPuP DuHItlbFDW9puDsSDxE3FUs0vNG3c9mz0Eeb/HLgnyHhoZNoiSR917HNbbPRSYhS 5CLvzSojZnTHcM21o6QgbCTYiyu9HNLDV7QJ1SIhFJ/+0efeBaPZxfpC1NypRSHA UlHnr+lschk/o8GZWABeqMwqp51wEEaS+jaE/TaiQXBTNhTDTEnTBso6FFjcaA+4 0ziIdiusBkO9pH8H+ksN14rG9KXIuj2viai90alPPA1Swz7Mp4D2lZ+Vddi8QHhQ 8BXZA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgddufeekkeefucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepmfhlrghushcu lfgvnhhsvghnuceoihhtshesihhrrhgvlhgvvhgrnhhtrdgukheqnecuggftrfgrthhtvg hrnhepjefgieelgfeiveehkeeuveehheekfeevgeeigfehfefgjeejhefffeegudejudeg necuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepihhtsh esihhrrhgvlhgvvhgrnhhtrdgukhdpnhgspghrtghpthhtohepledpmhhouggvpehsmhht phhouhhtpdhrtghpthhtohepqhgvmhhuqdguvghvvghlsehnohhnghhnuhdrohhrghdprh gtphhtthhopehpvghtvghrrdhmrgihuggvlhhlsehlihhnrghrohdrohhrghdprhgtphht thhopehkrdhjvghnshgvnhesshgrmhhsuhhnghdrtghomhdprhgtphhtthhopehqvghmuh dqshhtrggslhgvsehnohhnghhnuhdrohhrghdprhgtphhtthhopegrrdhhihhnuggsohhr ghesshgrmhhsuhhnghdrtghomhdprhgtphhtthhopehksghushgthheskhgvrhhnvghlrd horhhgpdhrtghpthhtohepihhtshesihhrrhgvlhgvvhgrnhhtrdgukhdprhgtphhtthho pehfohhsshesuggvfhhmrggtrhhordhithdprhgtphhtthhopehqvghmuhdqsghlohgtkh esnhhonhhgnhhurdhorhhg X-ME-Proxy: Feedback-ID: idc91472f:Fastmail From: Klaus Jensen To: qemu-devel@nongnu.org Cc: Peter Maydell , Klaus Jensen , qemu-stable@nongnu.org, Andreas Hindborg , Keith Busch , Klaus Jensen , Jesper Devantier , qemu-block@nongnu.org Subject: [PULL 5/5] hw/nvme: fix admin cq msix setup Date: Mon, 18 May 2026 14:07:48 +0200 Message-ID: <20260518120748.14831-6-its@irrelevant.dk> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260518120748.14831-1-its@irrelevant.dk> References: <20260518120748.14831-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=lists1p.gnu.org; Received-SPF: pass client-ip=202.12.124.157; envelope-from=its@irrelevant.dk; helo=fhigh-b6-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 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: qemu development 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: 1779106198185154100 Content-Type: text/plain; charset="utf-8" From: Klaus Jensen If MSI-X is not enabled when the admin completion queue is created, msix_vector_use() is not called. But, if MSI-X is subsequently enabled, msix_notify() will fail to fire the interrupt because the use count for the vector remains at 0. msix_vector_use/unuse should be called if MSI-X is *present*, not *enabled*. Fix this. Cc: qemu-stable@nongnu.org Reported-by: Andreas Hindborg Signed-off-by: Klaus Jensen --- hw/nvme/ctrl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c index 5b03929451d0..815f39173c8a 100644 --- a/hw/nvme/ctrl.c +++ b/hw/nvme/ctrl.c @@ -5519,7 +5519,7 @@ static void nvme_free_cq(NvmeCQueue *cq, NvmeCtrl *n) event_notifier_set_handler(&cq->notifier, NULL); event_notifier_cleanup(&cq->notifier); } - if (msix_enabled(pci) && cq->irq_enabled) { + if (msix_present(pci) && cq->irq_enabled) { msix_vector_unuse(pci, cq->vector); } if (cq->cqid) { @@ -5560,7 +5560,7 @@ static void nvme_init_cq(NvmeCQueue *cq, NvmeCtrl *n,= uint64_t dma_addr, { PCIDevice *pci =3D PCI_DEVICE(n); =20 - if (msix_enabled(pci) && irq_enabled) { + if (msix_present(pci) && irq_enabled) { msix_vector_use(pci, vector); } =20 --=20 2.53.0