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=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