From nobody Thu May 2 01:51:58 2024 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 ARC-Seal: i=1; a=rsa-sha256; t=1616616898; cv=none; d=zohomail.com; s=zohoarc; b=fRiqbeOdZ6gvK8JOYm8v/v9G/uo2LftiQlU8oUTgHHf3h468haBDpUtJem7jITdk4R8ZREeeZXiDPuXT4Z87mmZ8rFKnUMj7LvTKc+BBN93nPr1kOPmHH8jEE8U6FPW89wpkxVdhS05JhHbnkpX5vbcNFIQCyuZGHXc6QXxD8iM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1616616898; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=XlsQzuRts1cnZk6WID2ViUpLl9TVz61RaxQUDBr6iCs=; b=OFbXpGRTMgUnn8gXrbwU1ciz1q7/YaiqbU/cFFdDJjPpSJ+ukNteMkuVG8IoT2QjKI26UQVUN9ljogxcYl9wEpUhGCWneh5gVlLPg07FJYLNJ7J5pZdYMdFu/nPQunH26eA+vpvMDeuwT8+FqdXuOZITrGMSgh2Nt3PhyNvP29g= ARC-Authentication-Results: i=1; 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 1616616898398990.4041800759479; Wed, 24 Mar 2021 13:14:58 -0700 (PDT) Received: from localhost ([::1]:52268 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lP9u4-0001sY-Q2 for importer@patchew.org; Wed, 24 Mar 2021 16:14:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38572) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lP9of-0007qj-5V; Wed, 24 Mar 2021 16:09:21 -0400 Received: from wout5-smtp.messagingengine.com ([64.147.123.21]:44077) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lP9oc-0008Kl-H9; Wed, 24 Mar 2021 16:09:20 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id 1C39013F4; Wed, 24 Mar 2021 16:09:14 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Wed, 24 Mar 2021 16:09:14 -0400 Received: from apples.local (80-167-98-190-cable.dk.customer.tdc.net [80.167.98.190]) by mail.messagingengine.com (Postfix) with ESMTPA id B18441080054; Wed, 24 Mar 2021 16:09:11 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irrelevant.dk; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm2; bh=XlsQzuRts1cnZ k6WID2ViUpLl9TVz61RaxQUDBr6iCs=; b=NrtJgsVd7PRjMxzZKEVIGikaNfND6 EHkW/Dg1XkigRhGkx6ZjWNJ1DusybKOPm0eJkR/XfPNmPm5a9+ETSsC13reN376p PUPRfriVt7w/OT2m5KNL6/NIpR+UmnvvaO4I6ZypZygFU8U7eVcik6hEb+q5q3cB 3M9SGS5imxknVn1NaabO6IHoSLFgJZcqAVE3vwZ/g2sRC0Az3LVw//wpeXIuxxSP 2DCshJQiNpyIuzpHEanru5/fILUpIq79Yr68xDRAADYFW5wQxT+yIQC7hHBZO0ur 4creBGQ85Mjld1701ye6F2XcrfuV496O8TtcbGF9j8Uuw/T9JAgbJr0oA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=XlsQzuRts1cnZk6WID2ViUpLl9TVz61RaxQUDBr6iCs=; b=TI3x1DTT tXVgqEbg1S98/u1c3y6MXoLW86s92nLXGzuvEg+24KF12Ph5Fp5yN7BJNglg1S/U olVtlSoDl5M0TwosvfTeiAuKqAT41b9ZNVtbS5gGvO314Q6FDLvU1+XRiOmk58WF aLF8+rqluy0VoMm9v0LHr8W07xm6UI+M9Ylf1dWZHad0dKp9J8apWIrh0qPP7AyY lhX+JYK+qfcmHSHCobkH7XYvz1pLf/FprnBPq0VVKBFRgbo3sbI3zlJaPQbAtpJU h3LSpZj5WxFXls+GuTYefyP6Y0e7GL4kiwsWgrxaQcz0QA2HAGTFX46MK8B5pRit ZsbFdL/bgSaDgg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudegkedgudefudcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepmfhlrghu shculfgvnhhsvghnuceoihhtshesihhrrhgvlhgvvhgrnhhtrdgukheqnecuggftrfgrth htvghrnhepueelteegieeuhffgkeefgfevjeeigfetkeeitdfgtdeifefhtdfhfeeuffev gfeknecukfhppeektddrudeijedrleekrdduledtnecuvehluhhsthgvrhfuihiivgeptd enucfrrghrrghmpehmrghilhhfrhhomhepihhtshesihhrrhgvlhgvvhgrnhhtrdgukh X-ME-Proxy: From: Klaus Jensen To: qemu-devel@nongnu.org Subject: [PATCH for-6.0 1/7] hw/block/nvme: fix pi constraint check Date: Wed, 24 Mar 2021 21:09:01 +0100 Message-Id: <20210324200907.408996-2-its@irrelevant.dk> X-Mailer: git-send-email 2.31.0 In-Reply-To: <20210324200907.408996-1-its@irrelevant.dk> References: <20210324200907.408996-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=64.147.123.21; envelope-from=its@irrelevant.dk; helo=wout5-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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Fam Zheng , qemu-block@nongnu.org, Klaus Jensen , Max Reitz , Keith Busch , Stefan Hajnoczi , Klaus Jensen Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Klaus Jensen Protection Information can only be enabled if there is at least 8 bytes of metadata. Signed-off-by: Klaus Jensen Reviewed-by: Gollu Appalanaidu --- hw/block/nvme-ns.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/block/nvme-ns.c b/hw/block/nvme-ns.c index 7f8d139a8663..ca04ee1bacfb 100644 --- a/hw/block/nvme-ns.c +++ b/hw/block/nvme-ns.c @@ -394,7 +394,7 @@ static int nvme_ns_check_constraints(NvmeNamespace *ns,= Error **errp) return -1; } =20 - if (ns->params.pi && !ns->params.ms) { + if (ns->params.pi && ns->params.ms < 8) { error_setg(errp, "at least 8 bytes of metadata required to enable " "protection information"); return -1; --=20 2.31.0 From nobody Thu May 2 01:51:58 2024 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 ARC-Seal: i=1; a=rsa-sha256; t=1616617336; cv=none; d=zohomail.com; s=zohoarc; b=UuA3ejwsrFXx/HhoSu8inw9rCul7PO8Kxh0Gr2/DDXdTDOw4M27cCSa+haUfrmScIzr/dufRaK6TZCFzNdcsAv+csATdV1EP0NI0A+R/CsgYjaOJqdprzflOUnw66SsZQYhxCyDmVwBLVvnSrQvk4zwsOxn10DjQ8AqDMAwcCBI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1616617336; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=HBpbcH/dT4xNc8sZRqKXldT5tYOnlJF6MfI5uZ/zs4Q=; b=E4ngme/V2u1h2fwV6I1IoWemLDn3wFWMFZ2v5rI8JWiVv8A9cqgjBmEvnQDQ5ai/XVx0T/4aNPuFV2H+IyTdo3jgcZpEe60PavXGwlrkD2+HMAbas0QizDR0gYGJazef595pINCp8gFAzU2XTSmbCs5vMfvnTK53vFmPTEz4lPY= ARC-Authentication-Results: i=1; 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 1616617336306470.12988690274074; Wed, 24 Mar 2021 13:22:16 -0700 (PDT) Received: from localhost ([::1]:34688 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lPA19-0006Tw-8s for importer@patchew.org; Wed, 24 Mar 2021 16:22:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38582) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lP9of-0007r2-Sr; Wed, 24 Mar 2021 16:09:22 -0400 Received: from wout5-smtp.messagingengine.com ([64.147.123.21]:40591) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lP9oc-0008MD-H7; Wed, 24 Mar 2021 16:09:21 -0400 Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id 961ED13D1; Wed, 24 Mar 2021 16:09:15 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute6.internal (MEProxy); Wed, 24 Mar 2021 16:09:16 -0400 Received: from apples.local (80-167-98-190-cable.dk.customer.tdc.net [80.167.98.190]) by mail.messagingengine.com (Postfix) with ESMTPA id 1E8511080069; Wed, 24 Mar 2021 16:09:13 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irrelevant.dk; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm2; bh=HBpbcH/dT4xNc 8sZRqKXldT5tYOnlJF6MfI5uZ/zs4Q=; b=JPQCzd0Ue2g/oIonW3ikYgvV0zf1Z ouwG2J829D4NV4TPhFaB93Z7cs8ACSMJLj8m7zHYuhuC15JsQeRiVWZl9AubtMJb Wf0hPDSSVjAGWVjiNOZuZL5gkhb2RLsB8KGKnAWRmm+wS0jbzMIDW/vpsT09L3ip tABfNhLZ3B+A6JD0sFaYKQMEDZJ5NYknbzHjk1OVJiyIbLk844Akhc6cAsQGWSHl C2gwp6p75ppMHiWeKQ4rGoKCHHYnd/FGo9ofzUVHrSw5nzSMpI7Pv71bYiw89eYe 4y5IgXyy2VteigbOr+pQ879aI3J4mRV4LAJDVaRp1FyQsiOCFPBfJ1C+Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=HBpbcH/dT4xNc8sZRqKXldT5tYOnlJF6MfI5uZ/zs4Q=; b=vlRisD/K IozDHuqcTXF/cefFxkPzu9ml1DpkO5tA+Gcv7thCJAs8mS9IncPqXCX6AKD1TMAV 48rxSoD9+2swwAo5vUPf8dWGLXHdHDc0uvMSr6mwk4zu95c58AtYrRpmqCKVJliL 1LCstBp5G+hEZGOiOftCyOwKwwCtVUM9GsdfbGDb4AUhYJRLRaZQwxxyf+ME9xed /Ni/gdbUn+2ZZ6oryL+LuOx8gzy1DHGtwhT7wav8Fj9KQS2cZgh+3DFCW1wdbv6B sSdOWPgEbEtAsznrZG61reEqVK2/iG+VYoUBymvgc5lHtbcb4VyVMENMyn/Snnu5 U5VqHnjUuoDp4Q== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudegkedgudefudcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepmfhlrghu shculfgvnhhsvghnuceoihhtshesihhrrhgvlhgvvhgrnhhtrdgukheqnecuggftrfgrth htvghrnhepueelteegieeuhffgkeefgfevjeeigfetkeeitdfgtdeifefhtdfhfeeuffev gfeknecukfhppeektddrudeijedrleekrdduledtnecuvehluhhsthgvrhfuihiivgeptd enucfrrghrrghmpehmrghilhhfrhhomhepihhtshesihhrrhgvlhgvvhgrnhhtrdgukh X-ME-Proxy: From: Klaus Jensen To: qemu-devel@nongnu.org Subject: [PATCH for-6.0 2/7] hw/block/nvme: fix missing string representation for ns attachment Date: Wed, 24 Mar 2021 21:09:02 +0100 Message-Id: <20210324200907.408996-3-its@irrelevant.dk> X-Mailer: git-send-email 2.31.0 In-Reply-To: <20210324200907.408996-1-its@irrelevant.dk> References: <20210324200907.408996-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=64.147.123.21; envelope-from=its@irrelevant.dk; helo=wout5-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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Fam Zheng , qemu-block@nongnu.org, Klaus Jensen , Max Reitz , Keith Busch , Stefan Hajnoczi , Klaus Jensen Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Klaus Jensen Add the missing nvme_adm_opc_str entry for the Namespace Attachment command. Signed-off-by: Klaus Jensen Reviewed-by: Gollu Appalanaidu --- hw/block/nvme.h | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/block/nvme.h b/hw/block/nvme.h index 5b0031b11db2..9edc86d79e98 100644 --- a/hw/block/nvme.h +++ b/hw/block/nvme.h @@ -86,6 +86,7 @@ static inline const char *nvme_adm_opc_str(uint8_t opc) case NVME_ADM_CMD_SET_FEATURES: return "NVME_ADM_CMD_SET_FEATURES"; case NVME_ADM_CMD_GET_FEATURES: return "NVME_ADM_CMD_GET_FEATURES"; case NVME_ADM_CMD_ASYNC_EV_REQ: return "NVME_ADM_CMD_ASYNC_EV_REQ"; + case NVME_ADM_CMD_NS_ATTACHMENT: return "NVME_ADM_CMD_NS_ATTACHMENT= "; case NVME_ADM_CMD_FORMAT_NVM: return "NVME_ADM_CMD_FORMAT_NVM"; default: return "NVME_ADM_CMD_UNKNOWN"; } --=20 2.31.0 From nobody Thu May 2 01:51:58 2024 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 ARC-Seal: i=1; a=rsa-sha256; t=1616617008; cv=none; d=zohomail.com; s=zohoarc; b=ghOxrNnANetkibKfnMCN5bqFbn4XnbYtA0KM+yGLTWJmPSeUOCWcVDxWi253fp3L0bUevFjE3wMDMJ0VMd/7O+if+0VJKBmmim3MebpyZxo6liayhTqGQxS8bDrP120DkunBHq/3StPowtJZHjbn3c4xP6ZSztYlUsQcDyyFVLs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1616617008; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ik2e+oQ15mYXVHqR8ae39WxygT92dBiTwi8TuB+ZLHw=; b=Uy8OhOkkycXZ+F/xpEGImMjBPyZAlfO2LmXocUGlA21RmhEV9a7i++C5bAZxkun0h5escer28mTDFuN2oi1UcodNovWIWLHuRcGawxm/gWwCniuMRfkbPZZtfHt9/QClUN4sxUDawUccA0Z93ofAXbPkguZfpNhYWVy/KKXDNLQ= ARC-Authentication-Results: i=1; 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 1616617008145922.7856558216467; Wed, 24 Mar 2021 13:16:48 -0700 (PDT) Received: from localhost ([::1]:54528 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lP9vr-0002p0-0H for importer@patchew.org; Wed, 24 Mar 2021 16:16:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38624) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lP9oh-0007rQ-F7; Wed, 24 Mar 2021 16:09:23 -0400 Received: from wout5-smtp.messagingengine.com ([64.147.123.21]:46961) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lP9oc-0008MX-ID; Wed, 24 Mar 2021 16:09:23 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id 2C2C91398; Wed, 24 Mar 2021 16:09:16 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Wed, 24 Mar 2021 16:09:16 -0400 Received: from apples.local (80-167-98-190-cable.dk.customer.tdc.net [80.167.98.190]) by mail.messagingengine.com (Postfix) with ESMTPA id 794B51080057; Wed, 24 Mar 2021 16:09:14 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irrelevant.dk; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm2; bh=ik2e+oQ15mYXV HqR8ae39WxygT92dBiTwi8TuB+ZLHw=; b=HDz1jxG1+D2So2UfWZMpSjoNwXNzh qo1xGpNtC8r4kCeJvMvySvgpdi2VPNkEA5Cyt4hutWi/mITNTuYDp01PPNy3sOuO 63AUQUjmvsCaKUTqlS22FK7DrvJwYglPizdSGWxk3UysVsPh9xd9AbLZeuoRgnt6 yVwCDtqNO/xBkxLOxVzX2QAqsMFhVRFyLHuryt1LGCs/0QmMrGwwJ4nk7Vhbma4T qYgVRNpNEzS20/pDurx4GmlVktNRVsaaKpGV2giB9Jq3Phlk8pMSVnWU3gS9qMDf QFSMKuqBf96Act6JFbjuoS+VkrU9sw0MDEdp5N8fwRWPAdcWst5GMzW5Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=ik2e+oQ15mYXVHqR8ae39WxygT92dBiTwi8TuB+ZLHw=; b=D03mldJE T0OhxEAfVpf0ypmjImVE6Yuh3laA1DtCGbhPmttEUj31ibX27HwnhXMy03CDMa2w /x1ugILX1daKVmFvJnvzIYuOg6ARvgHWp72SIlGLBZASzK2AtNY4dQID7GSrUsXO xn05ZZEHiPR2vMllVEdHkD5Cxy/uQLydFesi0zGWhi1ftHoA0pIROAKVwEVaVhLp 6PClCJTDIkXQ3Gn3Lf24zMpzvc2VbUFsSgajvo53nWRAhua4L2nC0pofnHpLF4/O ajY+9TpuTRf+JNmz1DuGL9FmUd38AFaYJNyXm3Xrs1LdTlx3QvvIB0TP6NSvwUnZ l6Z1hnllhFEVRw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudegkedgudefudcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepmfhlrghu shculfgvnhhsvghnuceoihhtshesihhrrhgvlhgvvhgrnhhtrdgukheqnecuggftrfgrth htvghrnhepueelteegieeuhffgkeefgfevjeeigfetkeeitdfgtdeifefhtdfhfeeuffev gfeknecukfhppeektddrudeijedrleekrdduledtnecuvehluhhsthgvrhfuihiivgeptd enucfrrghrrghmpehmrghilhhfrhhomhepihhtshesihhrrhgvlhgvvhgrnhhtrdgukh X-ME-Proxy: From: Klaus Jensen To: qemu-devel@nongnu.org Subject: [PATCH for-6.0 3/7] hw/block/nvme: fix the nsid 'invalid' value Date: Wed, 24 Mar 2021 21:09:03 +0100 Message-Id: <20210324200907.408996-4-its@irrelevant.dk> X-Mailer: git-send-email 2.31.0 In-Reply-To: <20210324200907.408996-1-its@irrelevant.dk> References: <20210324200907.408996-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=64.147.123.21; envelope-from=its@irrelevant.dk; helo=wout5-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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Fam Zheng , qemu-block@nongnu.org, Klaus Jensen , Max Reitz , Keith Busch , Stefan Hajnoczi , Klaus Jensen Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Klaus Jensen The `nvme_nsid()` function returns '-1' (FFFFFFFFh) when the given namespace is NULL. Since FFFFFFFFh is actually a valid namespace identifier (the "broadcast" value), change this to be '0' since that actually *is* the invalid value. Signed-off-by: Klaus Jensen Reviewed-by: Gollu Appalanaidu --- hw/block/nvme-ns.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/block/nvme-ns.h b/hw/block/nvme-ns.h index 9ab7894fc83e..82340c4b2574 100644 --- a/hw/block/nvme-ns.h +++ b/hw/block/nvme-ns.h @@ -96,7 +96,7 @@ static inline uint32_t nvme_nsid(NvmeNamespace *ns) return ns->params.nsid; } =20 - return -1; + return 0; } =20 static inline bool nvme_ns_shared(NvmeNamespace *ns) --=20 2.31.0 From nobody Thu May 2 01:51:58 2024 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 ARC-Seal: i=1; a=rsa-sha256; t=1616617427; cv=none; d=zohomail.com; s=zohoarc; b=R2UBCc3GhkvLJfRSI6qzb3ycJwGAUEHHZ/jr2ymKnCJvCmX7gS6fE+zw1CxZZJjAg7M4qvuJ6Vvc8+THGOJpPByNMNeNTzgKxeqsTafK593Ww6PBhsibQVOvpI8jkdpOvIIbM8l8ZLVRArKfjByywEMmcB61PVjUIWGTJpVlliM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1616617427; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=v8RAiOJMlzHyhNB2DIrXIr9luT0XBrNgKMjXxo0kGOM=; b=S8WeilC9flcMZ2jxF6QSrJMtWza/H5PGUyOAoftvitwvN0yDe3BeKsaUGOSXKi4XubSfDq1JpgLB8W4Sod/5VF+S+Bv1KBpU+Bi2yorwbrGNwUbLfhJMVDgh2MtT2HGg7EIi6YobCNOR2wGjyon4IeZgm2qHZiYdoIn0xHdMh74= ARC-Authentication-Results: i=1; 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 161661742758733.00045694820665; Wed, 24 Mar 2021 13:23:47 -0700 (PDT) Received: from localhost ([::1]:37504 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lPA2c-0007pD-Nm for importer@patchew.org; Wed, 24 Mar 2021 16:23:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38710) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lP9or-0007vO-Ng; Wed, 24 Mar 2021 16:09:33 -0400 Received: from wout5-smtp.messagingengine.com ([64.147.123.21]:43129) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lP9od-0008NM-PR; Wed, 24 Mar 2021 16:09:33 -0400 Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id 89DCC13FC; Wed, 24 Mar 2021 16:09:17 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute6.internal (MEProxy); Wed, 24 Mar 2021 16:09:18 -0400 Received: from apples.local (80-167-98-190-cable.dk.customer.tdc.net [80.167.98.190]) by mail.messagingengine.com (Postfix) with ESMTPA id DC671108005C; Wed, 24 Mar 2021 16:09:15 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irrelevant.dk; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm2; bh=v8RAiOJMlzHyh NB2DIrXIr9luT0XBrNgKMjXxo0kGOM=; b=amKa8NaTJ2eO17QdzqKD6TldSCWpm 4gL1Ts0+SODU507KXC34F1Ae7Mkn+bTzlHxImvLxa/7zQN4mXFW8EcKMlQqRlZks 2txCnTPqOMUn0WBEhUxxLhPPo9YchZleehGXjEL7zeq9t8SkehN/JkJm+3RttOTZ Op+R449M89s3htvEkL2U0SfAOZY+YfphZMMcy/laK7oJaG7ChzogOvVVJhaGoa0G NU/mW9nXZr4HMgKeChPVBpCuSr/sQey5sZChsNFfxCNkRk54r22RCfurwIXIGxMG Zpl54EmfFt97K5fWibpjcz+wTpjK30vH7ptY7dlhItDscCyzznz7edXCA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=v8RAiOJMlzHyhNB2DIrXIr9luT0XBrNgKMjXxo0kGOM=; b=ujsNHZ8Z yQMAvlo12oeqjidbXNNnuF66rlODxZhI1IYO8iXOn7x+HVMK48EyT5vEDRG4YwfF zt5Ib5UOmJDF6tyc/pAt0NMm9HtLrSkW8JjZlWCQhsiqY3NKJ47cPwwEo+wGvTbC f7cYgoXau3Ifr5VMg6zhN6BhXtr7cvosfDqN36gu6sFIIokDwEqtk9KTALcCOn+g cZXitpybICN3tBOVDw6QfPyLGOaImUPVxmxGfkgLWqlf3jM0ace++6aAhKv/R5Ij DHDgodHRe/tEd0baUphqhs18j1q/+hR+spbFZTPOmwcN5ETWRrf5c4ra1d4EV8Le C36cYndkhvZGOw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudegkedgudefudcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepmfhlrghu shculfgvnhhsvghnuceoihhtshesihhrrhgvlhgvvhgrnhhtrdgukheqnecuggftrfgrth htvghrnhepueelteegieeuhffgkeefgfevjeeigfetkeeitdfgtdeifefhtdfhfeeuffev gfeknecukfhppeektddrudeijedrleekrdduledtnecuvehluhhsthgvrhfuihiivgeptd enucfrrghrrghmpehmrghilhhfrhhomhepihhtshesihhrrhgvlhgvvhgrnhhtrdgukh X-ME-Proxy: From: Klaus Jensen To: qemu-devel@nongnu.org Subject: [PATCH for-6.0 4/7] hw/block/nvme: fix controller namespaces array indexing Date: Wed, 24 Mar 2021 21:09:04 +0100 Message-Id: <20210324200907.408996-5-its@irrelevant.dk> X-Mailer: git-send-email 2.31.0 In-Reply-To: <20210324200907.408996-1-its@irrelevant.dk> References: <20210324200907.408996-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=64.147.123.21; envelope-from=its@irrelevant.dk; helo=wout5-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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Fam Zheng , qemu-block@nongnu.org, Klaus Jensen , Max Reitz , Keith Busch , Stefan Hajnoczi , Klaus Jensen Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Klaus Jensen The controller namespaces array being 0-indexed requires 'nsid - 1' everywhere. Something that is easy to miss. Align the controller namespaces array with the subsystem namespaces array such that both are 1-indexed. Signed-off-by: Klaus Jensen Reviewed-by: Gollu Appalanaidu --- hw/block/nvme.h | 8 ++++---- hw/block/nvme.c | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/hw/block/nvme.h b/hw/block/nvme.h index 9edc86d79e98..c610ab30dc5c 100644 --- a/hw/block/nvme.h +++ b/hw/block/nvme.h @@ -217,7 +217,7 @@ typedef struct NvmeCtrl { * Attached namespaces to this controller. If subsys is not given, all * namespaces in this list will always be attached. */ - NvmeNamespace *namespaces[NVME_MAX_NAMESPACES]; + NvmeNamespace *namespaces[NVME_MAX_NAMESPACES + 1]; NvmeSQueue **sq; NvmeCQueue **cq; NvmeSQueue admin_sq; @@ -232,7 +232,7 @@ static inline NvmeNamespace *nvme_ns(NvmeCtrl *n, uint3= 2_t nsid) return NULL; } =20 - return n->namespaces[nsid - 1]; + return n->namespaces[nsid]; } =20 static inline bool nvme_ns_is_attached(NvmeCtrl *n, NvmeNamespace *ns) @@ -253,7 +253,7 @@ static inline void nvme_ns_attach(NvmeCtrl *n, NvmeName= space *ns) uint32_t nsid =3D nvme_nsid(ns); assert(nsid && nsid <=3D NVME_MAX_NAMESPACES); =20 - n->namespaces[nsid - 1] =3D ns; + n->namespaces[nsid] =3D ns; } =20 static inline void nvme_ns_detach(NvmeCtrl *n, NvmeNamespace *ns) @@ -261,7 +261,7 @@ static inline void nvme_ns_detach(NvmeCtrl *n, NvmeName= space *ns) uint32_t nsid =3D nvme_nsid(ns); assert(nsid && nsid <=3D NVME_MAX_NAMESPACES); =20 - n->namespaces[nsid - 1] =3D NULL; + n->namespaces[nsid] =3D NULL; } =20 static inline NvmeCQueue *nvme_cq(NvmeRequest *req) diff --git a/hw/block/nvme.c b/hw/block/nvme.c index 6842b01ab58b..7a7e793c6c26 100644 --- a/hw/block/nvme.c +++ b/hw/block/nvme.c @@ -5909,7 +5909,7 @@ int nvme_register_namespace(NvmeCtrl *n, NvmeNamespac= e *ns, Error **errp) return -1; } } else { - if (n->namespaces[nsid - 1]) { + if (n->namespaces[nsid]) { error_setg(errp, "namespace id '%d' is already in use", nsid); return -1; } --=20 2.31.0 From nobody Thu May 2 01:51:58 2024 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 ARC-Seal: i=1; a=rsa-sha256; t=1616617345; cv=none; d=zohomail.com; s=zohoarc; b=NKP5CiG7ViwjB/z9h2ODj6PrFzwOlLBJmFltVUwEAySkhDD92LAsjv9IhVQpaJuG9ZDEANYrIRXCmTje8/yL6axnyNQDM7NcjlmoSiGFnLyPXxVHWG5vk28QUvp8c9ZOSCEom9beMRPjeTxrALBMTWRphCKJEc1ziEhdnLbIFVM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1616617345; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=fVTX6CUmqYCuXCPyvquTvZr3MbP4Kb0leRFhY6fwrYE=; b=AQMtYc9TlXOZMpvhFE+OPGkODnPg3YVn6+w727UjPJ7SCctd/LdI1lmvRfkZZ5DwIxPvV1TtCXRIiFXtXeeTcWWuYf4meBcjDqujEh88ucCxVLOR3ufL241ChxKR2A2qduHZGz3MdMKydNChiCEdFGaHzQcPN1aK8BhvfHxQLUk= ARC-Authentication-Results: i=1; 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 1616617345435687.004815455686; Wed, 24 Mar 2021 13:22:25 -0700 (PDT) Received: from localhost ([::1]:34950 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lPA1H-0006ac-Fp for importer@patchew.org; Wed, 24 Mar 2021 16:22:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38708) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lP9or-0007vN-Lm; Wed, 24 Mar 2021 16:09:33 -0400 Received: from wout5-smtp.messagingengine.com ([64.147.123.21]:37611) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lP9og-0008PX-77; Wed, 24 Mar 2021 16:09:32 -0400 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.west.internal (Postfix) with ESMTP id 81E6A1401; Wed, 24 Mar 2021 16:09:19 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute3.internal (MEProxy); Wed, 24 Mar 2021 16:09:20 -0400 Received: from apples.local (80-167-98-190-cable.dk.customer.tdc.net [80.167.98.190]) by mail.messagingengine.com (Postfix) with ESMTPA id 449781080057; Wed, 24 Mar 2021 16:09:17 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irrelevant.dk; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm2; bh=fVTX6CUmqYCuX CPyvquTvZr3MbP4Kb0leRFhY6fwrYE=; b=MXpH41s31VePoPnhX2ZpKmS/HFB0+ 5XnjRTRqoJCBC1o+A7axKlABjfenN0UVWvQ0ygWXdkaXmlGA/P4atmfoURrYgWBu StMxT3s82rVDMzD+82HKfRjrTg6ek54shibYVJnCw6Af8S36V0CAgBKi77GS84yD 0SOEqqSSQUjm8jhoR9Z+RZMnum3q4+1PikW59eVJxFmRuNm9LgDKWwbHQqCLLEXD ecRtJtcUnC3QrvyKboeSqV7YMx1VfFI6ICC+4F5HDLADH9VX4tX/yqa/ZDl8vu5k 2z8pPu6ChJ2xRHE9pQPTI2Wnb7r2EMbeTTakEzEHF5fG0keyoVCOyRi0g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=fVTX6CUmqYCuXCPyvquTvZr3MbP4Kb0leRFhY6fwrYE=; b=p8V0ufBd bVKObbZomwC9JHMBx812oQIWEHtYCKBIznrg5P6B+J3P59JUFQ0J61Ogk451ooWe vjzxcQCTb/wh7ihfkH6YKW9qNnGDscr/vOC0R84wnUxfYxnAtNK7rxOFyibIxqAA PBSlj8KcF0LeOd8c1uPXgR07lEd7+XOnBykjDj6mGbcuxD5ykJVIhYKIn8L9mm8Q ypNWKLTtWgYD/Q5JLm5PrPjfglFh2D0don4SC2VRRCWQzSQOuTRfaEcp/35pOunx 76+SzB+POPjW6BXQ8a1fC9jC4cVIxAZMc+q9FvsQIEjSKjM3ZdNcK4fjRftfk3OQ pq0mV0jCeFgg0w== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudegkedgudefvdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepmfhlrghu shculfgvnhhsvghnuceoihhtshesihhrrhgvlhgvvhgrnhhtrdgukheqnecuggftrfgrth htvghrnhepueelteegieeuhffgkeefgfevjeeigfetkeeitdfgtdeifefhtdfhfeeuffev gfeknecukfhppeektddrudeijedrleekrdduledtnecuvehluhhsthgvrhfuihiivgeptd enucfrrghrrghmpehmrghilhhfrhhomhepihhtshesihhrrhgvlhgvvhgrnhhtrdgukh X-ME-Proxy: From: Klaus Jensen To: qemu-devel@nongnu.org Subject: [PATCH for-6.0 5/7] hw/block/nvme: fix warning about legacy namespace configuration Date: Wed, 24 Mar 2021 21:09:05 +0100 Message-Id: <20210324200907.408996-6-its@irrelevant.dk> X-Mailer: git-send-email 2.31.0 In-Reply-To: <20210324200907.408996-1-its@irrelevant.dk> References: <20210324200907.408996-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=64.147.123.21; envelope-from=its@irrelevant.dk; helo=wout5-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=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Fam Zheng , qemu-block@nongnu.org, Klaus Jensen , Max Reitz , Keith Busch , Stefan Hajnoczi , Klaus Jensen Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Klaus Jensen Remove the unused BlockConf from the controller structure and fix the constraint checking to actually check the right BlockConf and issue the warning. Signed-off-by: Klaus Jensen Reviewed-by: Gollu Appalanaidu --- hw/block/nvme.h | 1 - hw/block/nvme.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/hw/block/nvme.h b/hw/block/nvme.h index c610ab30dc5c..1570f65989a7 100644 --- a/hw/block/nvme.h +++ b/hw/block/nvme.h @@ -166,7 +166,6 @@ typedef struct NvmeCtrl { NvmeBar bar; NvmeParams params; NvmeBus bus; - BlockConf conf; =20 uint16_t cntlid; bool qs_created; diff --git a/hw/block/nvme.c b/hw/block/nvme.c index 7a7e793c6c26..403c8381a498 100644 --- a/hw/block/nvme.c +++ b/hw/block/nvme.c @@ -5807,7 +5807,7 @@ static void nvme_check_constraints(NvmeCtrl *n, Error= **errp) params->max_ioqpairs =3D params->num_queues - 1; } =20 - if (n->conf.blk) { + if (n->namespace.blkconf.blk) { warn_report("drive property is deprecated; " "please use an nvme-ns device instead"); } --=20 2.31.0 From nobody Thu May 2 01:51:58 2024 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 ARC-Seal: i=1; a=rsa-sha256; t=1616617733; cv=none; d=zohomail.com; s=zohoarc; b=E8GBg6oFWz4lCSVktqcHAkldJNYpMGGNIvluxGWVDkxIQt/2NhdHT3MJWXrW6e9ap0U9cuySA1/55qVLfeZnu6u68U2T46cZPNbMdVQ6+mgO9LnJaYXlsDZH6b++K01jl0+YHVFBQ1wBcEo5292fAgpvi0LyXnouDcqzuqqRjtw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1616617733; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=y6r7vAdmAcJ5AIuBEwc9pd0kG8fYkoWfxo1US67nP4M=; b=AdEgYFHI8qwWAmiA1EJyh2bMKPojfePPlW2sc9MfkvvCKCs/CDgj4KGCdU1hDgwLzSEaN+1RzPHUGqLdDGtOJ1kPpBKqR1zMP1V6KWA/Ak9/gIleqdRqEoez7DEtyO9H7dHc7AnBMocFmnrjurJ/LoJHu8B6cotTGRkHNN9htBg= ARC-Authentication-Results: i=1; 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 1616617732825750.2410844496357; Wed, 24 Mar 2021 13:28:52 -0700 (PDT) Received: from localhost ([::1]:46764 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lPA7X-0003bW-RB for importer@patchew.org; Wed, 24 Mar 2021 16:28:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38678) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lP9om-0007tq-Kh; Wed, 24 Mar 2021 16:09:28 -0400 Received: from wout5-smtp.messagingengine.com ([64.147.123.21]:46523) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lP9og-0008PY-8T; Wed, 24 Mar 2021 16:09:28 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id 2C437BEF; Wed, 24 Mar 2021 16:09:20 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Wed, 24 Mar 2021 16:09:20 -0400 Received: from apples.local (80-167-98-190-cable.dk.customer.tdc.net [80.167.98.190]) by mail.messagingengine.com (Postfix) with ESMTPA id 9AFCE108005C; Wed, 24 Mar 2021 16:09:18 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irrelevant.dk; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm2; bh=y6r7vAdmAcJ5A IuBEwc9pd0kG8fYkoWfxo1US67nP4M=; b=2thCjqz6bHIWOEysnuBd2ZclSLEWO SG2BDGwTzzg8R0vngbvJhpT75cEbBVWVOQem0MT28P1eze7hyiKPvugeu2nfvsW6 JLpLUoTdz6CGVcETktwg/od/3mG0Ro3wjS1sfpaK4JVronVhiegYNw+quV0BynqR IOFsJivQ8zjzG3fb0cl3h/RbupToPlYoY3QO0mVCZw/xNglYg4JL/DFEwEK/ZXRv WlI+xx91F6+0gueRy/8Q/1TCEC2LbfNFk/Z9yJQLToyr21PiCk+t/7ITE8iq9i73 gF14V2drYQUqflgAUTLUq6U6vvTrhdffjbpOyi9vHl8V0NY70XHLMLcIg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=y6r7vAdmAcJ5AIuBEwc9pd0kG8fYkoWfxo1US67nP4M=; b=uIunNqdw vvxF1Jh8cZ0Cuz3OOcWytvk45ZlL9P4Aaq30JjVPq0Lf8myZYk4WWjCEmjiGK/UM dNJirqCLMdh1nYQlhaBCX/xaP3ZNpWiM64xAm2Skrz6zCfwna20HnhMLBVhMoqLf /HROxjkxODgtfrsK+PIUC+jhmXb/PncuFpxeGRzC7W99efpTlGamEm2F5dFx/lEU L1/LBbZvevYZFRqREh5lBlr9U5+01LXwxZruH1I3AoPV0WaQupsSKyldQHFyzOfQ IPdYWnNnq0sxDLikOx6Hq0zEKX+sQEXFh5bTuCSlzlH8cEh4cxZXa/dC42x76Uuw J0O9hePAPowTdw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudegkedgudefudcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepmfhlrghu shculfgvnhhsvghnuceoihhtshesihhrrhgvlhgvvhgrnhhtrdgukheqnecuggftrfgrth htvghrnhepueelteegieeuhffgkeefgfevjeeigfetkeeitdfgtdeifefhtdfhfeeuffev gfeknecukfhppeektddrudeijedrleekrdduledtnecuvehluhhsthgvrhfuihiivgepvd enucfrrghrrghmpehmrghilhhfrhhomhepihhtshesihhrrhgvlhgvvhgrnhhtrdgukh X-ME-Proxy: From: Klaus Jensen To: qemu-devel@nongnu.org Subject: [PATCH for-6.0 6/7] hw/block/nvme: update dmsrl limit on namespace detachment Date: Wed, 24 Mar 2021 21:09:06 +0100 Message-Id: <20210324200907.408996-7-its@irrelevant.dk> X-Mailer: git-send-email 2.31.0 In-Reply-To: <20210324200907.408996-1-its@irrelevant.dk> References: <20210324200907.408996-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=64.147.123.21; envelope-from=its@irrelevant.dk; helo=wout5-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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Fam Zheng , qemu-block@nongnu.org, Klaus Jensen , Max Reitz , Keith Busch , Stefan Hajnoczi , Klaus Jensen Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Klaus Jensen The Non-MDTS DMSRL limit must be recomputed when namespaces are detached. Fixes: 645ce1a70cb6 ("hw/block/nvme: support namespace attachment command") Signed-off-by: Klaus Jensen Reviewed-by: Gollu Appalanaidu --- hw/block/nvme.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/hw/block/nvme.c b/hw/block/nvme.c index 403c8381a498..e84e43b2692d 100644 --- a/hw/block/nvme.c +++ b/hw/block/nvme.c @@ -4876,6 +4876,21 @@ static uint16_t nvme_aer(NvmeCtrl *n, NvmeRequest *r= eq) return NVME_NO_COMPLETE; } =20 +static void __nvme_update_dmrsl(NvmeCtrl *n) +{ + int nsid; + + for (nsid =3D 1; nsid <=3D NVME_MAX_NAMESPACES; nsid++) { + NvmeNamespace *ns =3D nvme_ns(n, nsid); + if (!ns) { + continue; + } + + n->dmrsl =3D MIN_NON_ZERO(n->dmrsl, + BDRV_REQUEST_MAX_BYTES / nvme_l2b(ns, 1)); + } +} + static void __nvme_select_ns_iocs(NvmeCtrl *n, NvmeNamespace *ns); static uint16_t nvme_ns_attachment(NvmeCtrl *n, NvmeRequest *req) { @@ -4925,6 +4940,8 @@ static uint16_t nvme_ns_attachment(NvmeCtrl *n, NvmeR= equest *req) } =20 nvme_ns_detach(ctrl, ns); + + __nvme_update_dmrsl(ctrl); } =20 /* --=20 2.31.0 From nobody Thu May 2 01:51:58 2024 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 ARC-Seal: i=1; a=rsa-sha256; t=1616617318; cv=none; d=zohomail.com; s=zohoarc; b=j01yeClzySPCwRPG33lx7vpGDMSPm0VpHVyd7Ns8uhedLqUtAPrueVQ/UWnLRIX5rA6DLkSBVj6x2ikRbrgQq0GYbJ7M4wWvuRJzcu1rCPMnYZt+KiFHqfum513iKnhoOnzoo1ez5Vd9AZ6bydsiGCR7KcOk79ukYCkz4fKZIdE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1616617318; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ETzkelbWvzf/d0wNmOetYOvqMAbnmJg+qeilvZfoyOw=; b=HUyMI9Ii2KICG5HLACoJ3S1v8uc7wt8Bruo99GGMAfRzC9Dq2/drU/ASBM0sdyGG/XDomrQlPaAKfP2+fHuAvEBM8siLp/4fdecnQAE0WWFGpwd7xvAuuMn8i2deZobqOHBtLCgiyYFQUiPrJ1NcgCsOnwdgjdkWacezDVAQbC4= ARC-Authentication-Results: i=1; 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 1616617318646797.3684003500673; Wed, 24 Mar 2021 13:21:58 -0700 (PDT) Received: from localhost ([::1]:33988 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lPA0q-0006BF-0W for importer@patchew.org; Wed, 24 Mar 2021 16:21:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38682) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lP9oo-0007uo-Eq; Wed, 24 Mar 2021 16:09:32 -0400 Received: from wout5-smtp.messagingengine.com ([64.147.123.21]:51389) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lP9oi-0008Pz-5b; Wed, 24 Mar 2021 16:09:30 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id A796713CD; Wed, 24 Mar 2021 16:09:21 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Wed, 24 Mar 2021 16:09:22 -0400 Received: from apples.local (80-167-98-190-cable.dk.customer.tdc.net [80.167.98.190]) by mail.messagingengine.com (Postfix) with ESMTPA id 00BC61080067; Wed, 24 Mar 2021 16:09:19 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irrelevant.dk; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm2; bh=ETzkelbWvzf/d 0wNmOetYOvqMAbnmJg+qeilvZfoyOw=; b=eNUYz1Rzy/R9NWU/2bMZzAt+tpRa7 bcuBNZYGhP+Cyk4vfuFmKWAZGIZDjM+8QpqM9hlW6Iupnb8MYderiwZqutiLF4ka c3VH54o1UElnCOfs1PyjfAyAe2FfM2R/KjfcUQ9Z2H+9CO7l7LySTgYpg7HwrjIr 1/Tc89giWGf5efkcQf/pUA5q8S6rxBo28s1ngu5FevONsb2RlEulGfC0njnG0Nzu zSnfcTdvIOUoQHG1uHenhAG59zoaKwBIROA/sKecR74mzkVMslfI36TRzRs5cEku 679o8QMLZD8ZGQMTxjXH/W+T9EWs5nuEk0DItzEarvwFUfOTDAYxjBdIA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=ETzkelbWvzf/d0wNmOetYOvqMAbnmJg+qeilvZfoyOw=; b=aGiKxR9J LxXkM9zEE2R2kQRTtdfrL/viGurHvUa4w9mcjQ4k0a+MVtnbkyBwuqQ98DObJhZE gUwlchETn5CDkbIbXiSwrY56D3pDUo14J7WRUatLH8EFVMY1eOGPBSt8x4RYLygB kiKY5q5BSKPQ31HzsYAAzk3TXTs6ednLnES5PTl3m8PDEvJMDA70VINtvJd8YEbC HYr8VqNsdw2M/JKPjcw+1GOJ0AnqnwesdV2jM9fq/slffyF6xt5Vs0tcC4TJt6fU fDVhX7mytZB2dOZ5YMVjjHJnd25kM9VYqxutJnaMeSk9Z7I3XS4uL4iGJ1fSmrmU OQsrEMx3BhjsJg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudegkedgudefudcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepmfhlrghu shculfgvnhhsvghnuceoihhtshesihhrrhgvlhgvvhgrnhhtrdgukheqnecuggftrfgrth htvghrnhepueelteegieeuhffgkeefgfevjeeigfetkeeitdfgtdeifefhtdfhfeeuffev gfeknecukfhppeektddrudeijedrleekrdduledtnecuvehluhhsthgvrhfuihiivgepvd enucfrrghrrghmpehmrghilhhfrhhomhepihhtshesihhrrhgvlhgvvhgrnhhtrdgukh X-ME-Proxy: From: Klaus Jensen To: qemu-devel@nongnu.org Subject: [PATCH for-6.0 7/7] hw/block/nvme: fix handling of private namespaces Date: Wed, 24 Mar 2021 21:09:07 +0100 Message-Id: <20210324200907.408996-8-its@irrelevant.dk> X-Mailer: git-send-email 2.31.0 In-Reply-To: <20210324200907.408996-1-its@irrelevant.dk> References: <20210324200907.408996-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=64.147.123.21; envelope-from=its@irrelevant.dk; helo=wout5-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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Fam Zheng , qemu-block@nongnu.org, Klaus Jensen , Max Reitz , Keith Busch , Minwoo Im , Stefan Hajnoczi , Klaus Jensen Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Klaus Jensen Prior to this patch, if a private nvme-ns device (that is, a namespace that is not linked to a subsystem) is wired up to an nvme-subsys linked nvme controller device, the device fails to verify that the namespace id is unique within the subsystem. NVM Express v1.4b, Section 6.1.6 ("NSID and Namespace Usage") states that because the device supports Namespace Management, "NSIDs *shall* be unique within the NVM subsystem". Additionally, prior to this patch, private namespaces are not known to the subsystem and the namespace is considered exclusive to the controller with which it is initially wired up to. However, this is not the definition of a private namespace; per Section 1.6.33 ("private namespace"), a private namespace is just a namespace that does not support multipath I/O or namespace sharing, which means "that it is only able to be attached to one controller at a time". Fix this by always allocating namespaces in the subsystem (if one is linked to the controller), regardsless of the shared/private status of the namespace. Whether or not the namespace is shareable is controlled by a new `shared` nvme-ns parameter. Finally, this fix allows the nvme-ns `subsys` parameter to be removed, since the `shared` parameter now serves the purpose of attaching the namespace to all controllers in the subsystem upon device realization. It is invalid to have an nvme-ns namespace device with a linked subsystem without the parent nvme controller device also being linked to one and since the nvme-ns devices will unconditionally be "attached" (in QEMU terms that is) to an nvme controller device through an NvmeBus, the nvme-ns namespace device can always get a reference to the subsystem of the controller it is explicitly (using 'bus=3D' parametr) or implicitly attaching to. Fixes: e570768566b3 ("hw/block/nvme: support for shared namespace in subsys= tem") Cc: Minwoo Im Signed-off-by: Klaus Jensen Reviewed-by: Gollu Appalanaidu --- hw/block/nvme-ns.h | 10 ++-- hw/block/nvme-subsys.h | 7 ++- hw/block/nvme.h | 39 +------------- include/block/nvme.h | 1 + hw/block/nvme-ns.c | 74 +++++++++++++++++++++++---- hw/block/nvme-subsys.c | 28 ----------- hw/block/nvme.c | 112 +++++++++++++---------------------------- hw/block/trace-events | 1 - 8 files changed, 106 insertions(+), 166 deletions(-) diff --git a/hw/block/nvme-ns.h b/hw/block/nvme-ns.h index 82340c4b2574..fb0a41f912e7 100644 --- a/hw/block/nvme-ns.h +++ b/hw/block/nvme-ns.h @@ -29,6 +29,7 @@ typedef struct NvmeZone { =20 typedef struct NvmeNamespaceParams { bool detached; + bool shared; uint32_t nsid; QemuUUID uuid; =20 @@ -60,8 +61,8 @@ typedef struct NvmeNamespace { const uint32_t *iocs; uint8_t csi; uint16_t status; + int attached; =20 - NvmeSubsystem *subsys; QTAILQ_ENTRY(NvmeNamespace) entry; =20 NvmeIdNsZoned *id_ns_zoned; @@ -99,11 +100,6 @@ static inline uint32_t nvme_nsid(NvmeNamespace *ns) return 0; } =20 -static inline bool nvme_ns_shared(NvmeNamespace *ns) -{ - return !!ns->subsys; -} - static inline NvmeLBAF *nvme_ns_lbaf(NvmeNamespace *ns) { NvmeIdNs *id_ns =3D &ns->id_ns; @@ -225,7 +221,7 @@ static inline void nvme_aor_dec_active(NvmeNamespace *n= s) } =20 void nvme_ns_init_format(NvmeNamespace *ns); -int nvme_ns_setup(NvmeNamespace *ns, Error **errp); +int nvme_ns_setup(NvmeCtrl *n, NvmeNamespace *ns, Error **errp); void nvme_ns_drain(NvmeNamespace *ns); void nvme_ns_shutdown(NvmeNamespace *ns); void nvme_ns_cleanup(NvmeNamespace *ns); diff --git a/hw/block/nvme-subsys.h b/hw/block/nvme-subsys.h index aafa04b84829..24132edd005c 100644 --- a/hw/block/nvme-subsys.h +++ b/hw/block/nvme-subsys.h @@ -14,7 +14,7 @@ OBJECT_CHECK(NvmeSubsystem, (obj), TYPE_NVME_SUBSYS) =20 #define NVME_SUBSYS_MAX_CTRLS 32 -#define NVME_SUBSYS_MAX_NAMESPACES 256 +#define NVME_MAX_NAMESPACES 256 =20 typedef struct NvmeCtrl NvmeCtrl; typedef struct NvmeNamespace NvmeNamespace; @@ -24,7 +24,7 @@ typedef struct NvmeSubsystem { =20 NvmeCtrl *ctrls[NVME_SUBSYS_MAX_CTRLS]; /* Allocated namespaces for this subsystem */ - NvmeNamespace *namespaces[NVME_SUBSYS_MAX_NAMESPACES + 1]; + NvmeNamespace *namespaces[NVME_MAX_NAMESPACES + 1]; =20 struct { char *nqn; @@ -32,7 +32,6 @@ typedef struct NvmeSubsystem { } NvmeSubsystem; =20 int nvme_subsys_register_ctrl(NvmeCtrl *n, Error **errp); -int nvme_subsys_register_ns(NvmeNamespace *ns, Error **errp); =20 static inline NvmeCtrl *nvme_subsys_ctrl(NvmeSubsystem *subsys, uint32_t cntlid) @@ -54,7 +53,7 @@ static inline NvmeNamespace *nvme_subsys_ns(NvmeSubsystem= *subsys, return NULL; } =20 - assert(nsid && nsid <=3D NVME_SUBSYS_MAX_NAMESPACES); + assert(nsid && nsid <=3D NVME_MAX_NAMESPACES); =20 return subsys->namespaces[nsid]; } diff --git a/hw/block/nvme.h b/hw/block/nvme.h index 1570f65989a7..644143597a0f 100644 --- a/hw/block/nvme.h +++ b/hw/block/nvme.h @@ -6,17 +6,9 @@ #include "nvme-subsys.h" #include "nvme-ns.h" =20 -#define NVME_MAX_NAMESPACES 256 - #define NVME_DEFAULT_ZONE_SIZE (128 * MiB) #define NVME_DEFAULT_MAX_ZA_SIZE (128 * KiB) =20 -/* - * Subsystem namespace list for allocated namespaces should be larger than - * attached namespace list in a controller. - */ -QEMU_BUILD_BUG_ON(NVME_MAX_NAMESPACES > NVME_SUBSYS_MAX_NAMESPACES); - typedef struct NvmeParams { char *serial; uint32_t num_queues; /* deprecated since 5.1 */ @@ -234,35 +226,6 @@ static inline NvmeNamespace *nvme_ns(NvmeCtrl *n, uint= 32_t nsid) return n->namespaces[nsid]; } =20 -static inline bool nvme_ns_is_attached(NvmeCtrl *n, NvmeNamespace *ns) -{ - int nsid; - - for (nsid =3D 1; nsid <=3D n->num_namespaces; nsid++) { - if (nvme_ns(n, nsid) =3D=3D ns) { - return true; - } - } - - return false; -} - -static inline void nvme_ns_attach(NvmeCtrl *n, NvmeNamespace *ns) -{ - uint32_t nsid =3D nvme_nsid(ns); - assert(nsid && nsid <=3D NVME_MAX_NAMESPACES); - - n->namespaces[nsid] =3D ns; -} - -static inline void nvme_ns_detach(NvmeCtrl *n, NvmeNamespace *ns) -{ - uint32_t nsid =3D nvme_nsid(ns); - assert(nsid && nsid <=3D NVME_MAX_NAMESPACES); - - n->namespaces[nsid] =3D NULL; -} - static inline NvmeCQueue *nvme_cq(NvmeRequest *req) { NvmeSQueue *sq =3D req->sq; @@ -291,7 +254,7 @@ typedef enum NvmeTxDirection { NVME_TX_DIRECTION_FROM_DEVICE =3D 1, } NvmeTxDirection; =20 -int nvme_register_namespace(NvmeCtrl *n, NvmeNamespace *ns, Error **errp); +void nvme_attach_ns(NvmeCtrl *n, NvmeNamespace *ns); uint16_t nvme_bounce_data(NvmeCtrl *n, uint8_t *ptr, uint32_t len, NvmeTxDirection dir, NvmeRequest *req); uint16_t nvme_bounce_mdata(NvmeCtrl *n, uint8_t *ptr, uint32_t len, diff --git a/include/block/nvme.h b/include/block/nvme.h index b0a4e4291611..4ac926fbc687 100644 --- a/include/block/nvme.h +++ b/include/block/nvme.h @@ -847,6 +847,7 @@ enum NvmeStatusCodes { NVME_FEAT_NOT_NS_SPEC =3D 0x010f, NVME_FW_REQ_SUSYSTEM_RESET =3D 0x0110, NVME_NS_ALREADY_ATTACHED =3D 0x0118, + NVME_NS_PRIVATE =3D 0x0119, NVME_NS_NOT_ATTACHED =3D 0x011A, NVME_NS_CTRL_LIST_INVALID =3D 0x011C, NVME_CONFLICTING_ATTRS =3D 0x0180, diff --git a/hw/block/nvme-ns.c b/hw/block/nvme-ns.c index ca04ee1bacfb..aee43ba0b873 100644 --- a/hw/block/nvme-ns.c +++ b/hw/block/nvme-ns.c @@ -73,7 +73,7 @@ static int nvme_ns_init(NvmeNamespace *ns, Error **errp) /* support DULBE and I/O optimization fields */ id_ns->nsfeat |=3D (0x4 | 0x10); =20 - if (nvme_ns_shared(ns)) { + if (ns->params.shared) { id_ns->nmic |=3D NVME_NMIC_NS_SHARED; } =20 @@ -387,7 +387,8 @@ static void nvme_zoned_ns_shutdown(NvmeNamespace *ns) assert(ns->nr_open_zones =3D=3D 0); } =20 -static int nvme_ns_check_constraints(NvmeNamespace *ns, Error **errp) +static int nvme_ns_check_constraints(NvmeCtrl *n, NvmeNamespace *ns, + Error **errp) { if (!ns->blkconf.blk) { error_setg(errp, "block backend not configured"); @@ -400,12 +401,32 @@ static int nvme_ns_check_constraints(NvmeNamespace *n= s, Error **errp) return -1; } =20 + if (ns->params.nsid > NVME_MAX_NAMESPACES) { + error_setg(errp, "invalid namespace id (must be between 0 and %d)", + NVME_MAX_NAMESPACES); + return -1; + } + + if (!n->subsys) { + if (ns->params.detached) { + error_setg(errp, "detached requires that the nvme device is " + "linked to an nvme-subsys device"); + return -1; + } + + if (ns->params.shared) { + error_setg(errp, "shared requires that the nvme device is " + "linked to an nvme-subsys device"); + return -1; + } + } + return 0; } =20 -int nvme_ns_setup(NvmeNamespace *ns, Error **errp) +int nvme_ns_setup(NvmeCtrl *n, NvmeNamespace *ns, Error **errp) { - if (nvme_ns_check_constraints(ns, errp)) { + if (nvme_ns_check_constraints(n, ns, errp)) { return -1; } =20 @@ -453,27 +474,60 @@ static void nvme_ns_realize(DeviceState *dev, Error *= *errp) NvmeNamespace *ns =3D NVME_NS(dev); BusState *s =3D qdev_get_parent_bus(dev); NvmeCtrl *n =3D NVME(s->parent); + NvmeSubsystem *subsys =3D n->subsys; + uint32_t nsid =3D ns->params.nsid; + int i; =20 - if (nvme_ns_setup(ns, errp)) { + if (nvme_ns_setup(n, ns, errp)) { return; } =20 - if (ns->subsys) { - if (nvme_subsys_register_ns(ns, errp)) { + if (!nsid) { + for (i =3D 1; i <=3D NVME_MAX_NAMESPACES; i++) { + if (!nvme_ns(n, i) || nvme_subsys_ns(subsys, i)) { + nsid =3D ns->params.nsid =3D i; + break; + } + } + + if (!nsid) { + error_setg(errp, "no free namespace id"); return; } } else { - if (nvme_register_namespace(n, ns, errp)) { + if (nvme_ns(n, nsid) || nvme_subsys_ns(subsys, nsid)) { + error_setg(errp, "namespace id '%d' already allocated", nsid); return; } } + + if (subsys) { + subsys->namespaces[nsid] =3D ns; + + if (ns->params.detached) { + return; + } + + if (ns->params.shared) { + for (i =3D 0; i < ARRAY_SIZE(subsys->ctrls); i++) { + NvmeCtrl *ctrl =3D subsys->ctrls[i]; + + if (ctrl) { + nvme_attach_ns(ctrl, ns); + } + } + + return; + } + } + + nvme_attach_ns(n, ns); } =20 static Property nvme_ns_props[] =3D { DEFINE_BLOCK_PROPERTIES(NvmeNamespace, blkconf), - DEFINE_PROP_LINK("subsys", NvmeNamespace, subsys, TYPE_NVME_SUBSYS, - NvmeSubsystem *), DEFINE_PROP_BOOL("detached", NvmeNamespace, params.detached, false), + DEFINE_PROP_BOOL("shared", NvmeNamespace, params.shared, false), DEFINE_PROP_UINT32("nsid", NvmeNamespace, params.nsid, 0), DEFINE_PROP_UUID("uuid", NvmeNamespace, params.uuid), DEFINE_PROP_UINT16("ms", NvmeNamespace, params.ms, 0), diff --git a/hw/block/nvme-subsys.c b/hw/block/nvme-subsys.c index 9fadef8cec99..283a97b79d57 100644 --- a/hw/block/nvme-subsys.c +++ b/hw/block/nvme-subsys.c @@ -43,34 +43,6 @@ int nvme_subsys_register_ctrl(NvmeCtrl *n, Error **errp) return cntlid; } =20 -int nvme_subsys_register_ns(NvmeNamespace *ns, Error **errp) -{ - NvmeSubsystem *subsys =3D ns->subsys; - NvmeCtrl *n; - uint32_t nsid =3D nvme_nsid(ns); - int i; - - assert(nsid && nsid <=3D NVME_SUBSYS_MAX_NAMESPACES); - - if (subsys->namespaces[nsid]) { - error_setg(errp, "namespace %d already registerd to subsy %s", - nvme_nsid(ns), subsys->parent_obj.id); - return -1; - } - - subsys->namespaces[nsid] =3D ns; - - for (i =3D 0; i < ARRAY_SIZE(subsys->ctrls); i++) { - n =3D subsys->ctrls[i]; - - if (n && nvme_register_namespace(n, ns, errp)) { - return -1; - } - } - - return 0; -} - static void nvme_subsys_setup(NvmeSubsystem *subsys) { const char *nqn =3D subsys->params.nqn ? diff --git a/hw/block/nvme.c b/hw/block/nvme.c index e84e43b2692d..734a80dbd540 100644 --- a/hw/block/nvme.c +++ b/hw/block/nvme.c @@ -4250,7 +4250,7 @@ static uint16_t nvme_identify_ns_attached_list(NvmeCt= rl *n, NvmeRequest *req) continue; } =20 - if (!nvme_ns_is_attached(ctrl, ns)) { + if (!nvme_ns(ctrl, c->nsid)) { continue; } =20 @@ -4907,6 +4907,10 @@ static uint16_t nvme_ns_attachment(NvmeCtrl *n, Nvme= Request *req) =20 trace_pci_nvme_ns_attachment(nvme_cid(req), dw10 & 0xf); =20 + if (!nvme_nsid_valid(n, nsid)) { + return NVME_INVALID_NSID | NVME_DNR; + } + ns =3D nvme_subsys_ns(n->subsys, nsid); if (!ns) { return NVME_INVALID_FIELD | NVME_DNR; @@ -4928,18 +4932,23 @@ static uint16_t nvme_ns_attachment(NvmeCtrl *n, Nvm= eRequest *req) } =20 if (attach) { - if (nvme_ns_is_attached(ctrl, ns)) { + if (nvme_ns(ctrl, nsid)) { return NVME_NS_ALREADY_ATTACHED | NVME_DNR; } =20 - nvme_ns_attach(ctrl, ns); + if (ns->attached && !ns->params.shared) { + return NVME_NS_PRIVATE | NVME_DNR; + } + + nvme_attach_ns(ctrl, ns); __nvme_select_ns_iocs(ctrl, ns); } else { - if (!nvme_ns_is_attached(ctrl, ns)) { + if (!nvme_ns(ctrl, nsid)) { return NVME_NS_NOT_ATTACHED | NVME_DNR; } =20 - nvme_ns_detach(ctrl, ns); + ctrl->namespaces[nsid] =3D NULL; + ns->attached--; =20 __nvme_update_dmrsl(ctrl); } @@ -5827,6 +5836,12 @@ static void nvme_check_constraints(NvmeCtrl *n, Erro= r **errp) if (n->namespace.blkconf.blk) { warn_report("drive property is deprecated; " "please use an nvme-ns device instead"); + + if (n->subsys) { + error_setg(errp, "subsystem support is unavailable with legacy= " + "namespace ('drive' property)"); + return; + } } =20 if (params->max_ioqpairs < 1 || @@ -5889,75 +5904,6 @@ static void nvme_init_state(NvmeCtrl *n) n->aer_reqs =3D g_new0(NvmeRequest *, n->params.aerl + 1); } =20 -static int nvme_attach_namespace(NvmeCtrl *n, NvmeNamespace *ns, Error **e= rrp) -{ - if (nvme_ns_is_attached(n, ns)) { - error_setg(errp, - "namespace %d is already attached to controller %d", - nvme_nsid(ns), n->cntlid); - return -1; - } - - nvme_ns_attach(n, ns); - - return 0; -} - -int nvme_register_namespace(NvmeCtrl *n, NvmeNamespace *ns, Error **errp) -{ - uint32_t nsid =3D nvme_nsid(ns); - - if (nsid > NVME_MAX_NAMESPACES) { - error_setg(errp, "invalid namespace id (must be between 0 and %d)", - NVME_MAX_NAMESPACES); - return -1; - } - - if (!nsid) { - for (int i =3D 1; i <=3D n->num_namespaces; i++) { - if (!nvme_ns(n, i)) { - nsid =3D ns->params.nsid =3D i; - break; - } - } - - if (!nsid) { - error_setg(errp, "no free namespace id"); - return -1; - } - } else { - if (n->namespaces[nsid]) { - error_setg(errp, "namespace id '%d' is already in use", nsid); - return -1; - } - } - - trace_pci_nvme_register_namespace(nsid); - - /* - * If subsys is not given, namespae is always attached to the controll= er - * because there's no subsystem to manage namespace allocation. - */ - if (!n->subsys) { - if (ns->params.detached) { - error_setg(errp, - "detached needs nvme-subsys specified nvme or nvme-= ns"); - return -1; - } - - return nvme_attach_namespace(n, ns, errp); - } else { - if (!ns->params.detached) { - return nvme_attach_namespace(n, ns, errp); - } - } - - n->dmrsl =3D MIN_NON_ZERO(n->dmrsl, - BDRV_REQUEST_MAX_BYTES / nvme_l2b(ns, 1)); - - return 0; -} - static void nvme_init_cmb(NvmeCtrl *n, PCIDevice *pci_dev) { uint64_t cmb_size =3D n->params.cmb_size_mb * MiB; @@ -6187,6 +6133,18 @@ static int nvme_init_subsys(NvmeCtrl *n, Error **err= p) return 0; } =20 +void nvme_attach_ns(NvmeCtrl *n, NvmeNamespace *ns) +{ + uint32_t nsid =3D ns->params.nsid; + assert(nsid && nsid <=3D NVME_MAX_NAMESPACES); + + n->namespaces[nsid] =3D ns; + ns->attached++; + + n->dmrsl =3D MIN_NON_ZERO(n->dmrsl, + BDRV_REQUEST_MAX_BYTES / nvme_l2b(ns, 1)); +} + static void nvme_realize(PCIDevice *pci_dev, Error **errp) { NvmeCtrl *n =3D NVME(pci_dev); @@ -6218,13 +6176,11 @@ static void nvme_realize(PCIDevice *pci_dev, Error = **errp) ns =3D &n->namespace; ns->params.nsid =3D 1; =20 - if (nvme_ns_setup(ns, errp)) { + if (nvme_ns_setup(n, ns, errp)) { return; } =20 - if (nvme_register_namespace(n, ns, errp)) { - return; - } + nvme_attach_ns(n, ns); } } =20 diff --git a/hw/block/trace-events b/hw/block/trace-events index 22da06986d72..fa12e3a67a75 100644 --- a/hw/block/trace-events +++ b/hw/block/trace-events @@ -51,7 +51,6 @@ hd_geometry_guess(void *blk, uint32_t cyls, uint32_t head= s, uint32_t secs, int t =20 # nvme.c # nvme traces for successful events -pci_nvme_register_namespace(uint32_t nsid) "nsid %"PRIu32"" pci_nvme_irq_msix(uint32_t vector) "raising MSI-X IRQ vector %u" pci_nvme_irq_pin(void) "pulsing IRQ pin" pci_nvme_irq_masked(void) "IRQ is masked" --=20 2.31.0