From nobody Fri Mar 29 15:46:48 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=1617774630; cv=none; d=zohomail.com; s=zohoarc; b=T5poTOgfz+EbQ1ko1Jh/s48tZfAjMZQvD3xYz8lhAGfwxD3M5I3FOUhgKyopOgm3tSQT8+g1LBlB/46VJ2QyF7y+wkh0RDAEQsH5mSBhwsSQmYHIL59xkQtjeQ+9vbXklglab6BKgWxUH6fMyj8WGJiFiDHrGx+vIIfj/vKPKgw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1617774630; 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=Nyr1FKlzBIy1/c0H4YJtakyzWIQGvyvtqYXrdVAUKHo=; b=OCAtrR40yeVpViCMlIu0KMf8E94NwmNPqS9nDjy4QEfZl/7RoCuFJeYdc825h2J/JIMLBUmHmJvTxdNBvnRrPFK3XvddexmbHQ97QGpXAOSG6MRpNdXDh9iGAPb8qCHd+NGWsXmt0XSUQRYmHaUB5p+KSkiqQ020Dro6wJPbNZE= 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 1617774630227768.0790866720656; Tue, 6 Apr 2021 22:50:30 -0700 (PDT) Received: from localhost ([::1]:43398 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lU15A-0003lh-MQ for importer@patchew.org; Wed, 07 Apr 2021 01:50:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44932) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lU11Z-00028L-EW; Wed, 07 Apr 2021 01:46:45 -0400 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:48097) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lU11W-0004zL-7q; Wed, 07 Apr 2021 01:46:45 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 8C4C75C00E1; Wed, 7 Apr 2021 01:46:40 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Wed, 07 Apr 2021 01:46:40 -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 28B89108005F; Wed, 7 Apr 2021 01:46:39 -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=Nyr1FKlzBIy1/ c0H4YJtakyzWIQGvyvtqYXrdVAUKHo=; b=haRFr4zjsdEqlWJFYyeBUciLkK7T8 CqsCjldiMSphmgmTrZA0PYiITzApiYC/jIrK7TjF0cDY+9qLsIG9KXoP8yCp/go8 CiozIuqAfIiD7MAus1kOWmdEb3EEH/jrtaOSFIJX4GQCrAqroq8o359TZBPjfwny oBQ58eaIkSxoyNFt5xc7bVTeWx2TP+mEoOn4DNW0eGwX7z0PVv3jDozPQKwHsLiW Gnw+MWTZ3mUwArB8mP3EPhlB4lqsV2aRDB0jVC46aEbKErIVhb4cGo9nHqZIcU+L WoJT14nA6T0eMT0FdWo3TQ8mm5h/B/EF/Tdz5T86usfB0TI80LRBZ4rjw== 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=Nyr1FKlzBIy1/c0H4YJtakyzWIQGvyvtqYXrdVAUKHo=; b=i75+q2eM v/7/BxUphnOeLEvUQO/IUkGIgiotht8WKSI/gIvVCg+uOGchku6L7PKkP+/mNuPs PIkCpgAX6A/TjKltUMdQkpW0qkW7mIWTkVlxVPUmRZSYHoe3r2TvMtPRVclenq1l s/JWng/Dy6wifYsj2doldf9fW1EAJAXFZjMIFYEYkw4d9sQcXdSFrgHYqRMDHo6T o2mP2gHpXjcV6jp5GVZJyefKwAqDKo5xs8BMp57ypeYJbQxvokSAQK/vVR74WVl1 8iwAndv0IC+MqNRaiOBUHLrdN1oXmvHGYmZmhz7JBnfeAOORWPTQXcQ+fQOig8n+ KrewWuqBu28zbQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudejiedguddttdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepmfhlrghu shculfgvnhhsvghnuceoihhtshesihhrrhgvlhgvvhgrnhhtrdgukheqnecuggftrfgrth htvghrnhepueelteegieeuhffgkeefgfevjeeigfetkeeitdfgtdeifefhtdfhfeeuffev gfeknecukfhppeektddrudeijedrleekrdduledtnecuvehluhhsthgvrhfuihiivgeptd enucfrrghrrghmpehmrghilhhfrhhomhepihhtshesihhrrhgvlhgvvhgrnhhtrdgukh X-ME-Proxy: From: Klaus Jensen To: qemu-devel@nongnu.org Subject: [PULL for-6.0 v2 01/10] hw/block/nvme: fix pi constraint check Date: Wed, 7 Apr 2021 07:46:26 +0200 Message-Id: <20210407054635.189440-2-its@irrelevant.dk> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210407054635.189440-1-its@irrelevant.dk> References: <20210407054635.189440-1-its@irrelevant.dk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=66.111.4.29; envelope-from=its@irrelevant.dk; helo=out5-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 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 , Gollu Appalanaidu , Max Reitz , Klaus Jensen , Stefan Hajnoczi , Keith Busch 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 Reviewed-by: Keith Busch --- 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.1 From nobody Fri Mar 29 15:46:48 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=1617774675; cv=none; d=zohomail.com; s=zohoarc; b=JhI6aBI3J79FnAGLmBIZ+DAzPJfBGpyzM6k9NHPPJknLA4eHn7yQ4LVFBvIG9OMZB06JWEpPHmbnoHUb/5LafyCE3xPQ9cFar6vHY9AwEd502ssgvl/c2BsSjbBPxYRxghomuFfu7S156DiU0HK4PRMX46Ngq0ASqTHrMFnCSfI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1617774675; 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=Ehl9uwxhCdQZ3X9GgRyTHcKkodPcs+CwbWNeqBnyNNU=; b=F+uNQXAZZsd+4lpUchgmDaHTr5R2spd8X4WaygE6Duqq6lOH55ztUfEeZSDOdiwvup9nvR/vAgC2VbAXYjM1ll1Y4ZtOyafZD0b7AZI9D5eLqh61GX8WiMS1+TA3p/BzRTSK/yH01mi9unHNVqEJQjHY+1j5qGEgJkXArQU/y/A= 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 1617774675656565.7540153649156; Tue, 6 Apr 2021 22:51:15 -0700 (PDT) Received: from localhost ([::1]:44452 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lU15u-0004CZ-Da for importer@patchew.org; Wed, 07 Apr 2021 01:51:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44934) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lU11Z-00028Q-Sw; Wed, 07 Apr 2021 01:46:46 -0400 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:51555) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lU11W-00050j-Rz; Wed, 07 Apr 2021 01:46:45 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 1308D5C00EC; Wed, 7 Apr 2021 01:46:42 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Wed, 07 Apr 2021 01:46:42 -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 A1CC9108005F; Wed, 7 Apr 2021 01:46:40 -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=Ehl9uwxhCdQZ3 X9GgRyTHcKkodPcs+CwbWNeqBnyNNU=; b=F/ppx1GcYZLEB7roQVVQfnpo4V8Cp 6jZQ31S8Tl502O98w+jtt9K9cYsavH0q7NXAb0WKEmJ0qEyq//I2yqrbxFP4kzck ZE1mZUdovftjX9Px7q+iCM9YGvpUNI0rkv0Ye1u1zg5LOkGd9z5Bml19xLrsgMS5 hIu0BkMhtA3S0iuYCvVeftOW02WTbejjPmIR+IK9l/5IaFCsGH1p3W044J8sSy+/ wLaNalNIvifMzT2WvPSYedHkg70l75BH1Hp1/WWSEE8Z+myKTv+z+V/8jSJSHLx/ o/VFosim3hrYwpHhNV7MgkxlXlx4fDsnGdy7ddMJ+Y9GWJlVNfhvpqj2g== 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=Ehl9uwxhCdQZ3X9GgRyTHcKkodPcs+CwbWNeqBnyNNU=; b=KJruq+uA QEwUg0gxkSBAwTjt9u3X20FHjV6Yx28o0BHXHLr+BZ1TJ9Iewt/Vgj3K1Jww4cLf o2FJHxJASQLuK2iCRlII9tYNGqQEuHRKdaNVs8SpiTcYjFndMUnJwud0YZfgBViA dWXINtEHDw3NhbqkHgd5yNMXCvwzbZOrOp2LZIE2xj+7ZpiV7KpEDeQKScDvcM6Z 2HVw4BH5BYupc5jL3DIa86TUGU9d4vwa4wEyOH6OXzneJ8YnCGzVUZY4/EftwdAx kJU+UAHlP8Bh86w/JoT3vivloNWw+BK7/rSFyNykGbIfl6NjZuOg9dP0rN2Jyxlb B2/6zG8PJPstiQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudejiedguddttdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepmfhlrghu shculfgvnhhsvghnuceoihhtshesihhrrhgvlhgvvhgrnhhtrdgukheqnecuggftrfgrth htvghrnhepueelteegieeuhffgkeefgfevjeeigfetkeeitdfgtdeifefhtdfhfeeuffev gfeknecukfhppeektddrudeijedrleekrdduledtnecuvehluhhsthgvrhfuihiivgeptd enucfrrghrrghmpehmrghilhhfrhhomhepihhtshesihhrrhgvlhgvvhgrnhhtrdgukh X-ME-Proxy: From: Klaus Jensen To: qemu-devel@nongnu.org Subject: [PULL for-6.0 v2 02/10] hw/block/nvme: fix missing string representation for ns attachment Date: Wed, 7 Apr 2021 07:46:27 +0200 Message-Id: <20210407054635.189440-3-its@irrelevant.dk> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210407054635.189440-1-its@irrelevant.dk> References: <20210407054635.189440-1-its@irrelevant.dk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=66.111.4.29; envelope-from=its@irrelevant.dk; helo=out5-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 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 , Gollu Appalanaidu , Max Reitz , Klaus Jensen , Stefan Hajnoczi , Keith Busch 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 Reviewed-by: Keith Busch --- 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.1 From nobody Fri Mar 29 15:46:48 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=1617774878; cv=none; d=zohomail.com; s=zohoarc; b=L/Csm0Tzp4Y44uNcX1nYQDNuU5/jJ6qFQK7WrMgOC34jeQ54xy2Dto/cCiX2k25K3f8cp/LlU+GEvRnu1aIc0JC/lERFggpuPCKY70IA9+h69hsQtLjJKWx+CR1Z/9aMVBMRVMH2ZMgUeBHFucXTuYOhhkqMPL9A+Y5XmfQrs8U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1617774878; 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=Crc5lY8+8kAgyfg0VFPjqfXIPSIUBFx9BFUoUUZKTVo=; b=lO5AADuCk7bxix8V0mU+9BLodtFVekVDhU1ycWnPjIcPHiU+p4hEl9DuFnCxygVWP4fQYd6Q7x5rr2aiC0soP/3yraPp11HnJMcLfNRZW8bNIg0pgYIUIX8sjDkMal8gAHSLeuoSGihas2fKcUcvrApXd5RDTtZDBvtSPCin3wQ= 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 1617774878417673.3254708782829; Tue, 6 Apr 2021 22:54:38 -0700 (PDT) Received: from localhost ([::1]:49844 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lU19B-0006Ve-A4 for importer@patchew.org; Wed, 07 Apr 2021 01:54:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44936) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lU11a-00028f-Lc; Wed, 07 Apr 2021 01:46:46 -0400 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:59643) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lU11Y-00051P-7a; Wed, 07 Apr 2021 01:46:46 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 74C905C00F3; Wed, 7 Apr 2021 01:46:43 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Wed, 07 Apr 2021 01:46:43 -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 2650D108005F; Wed, 7 Apr 2021 01:46:42 -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=Crc5lY8+8kAgy fg0VFPjqfXIPSIUBFx9BFUoUUZKTVo=; b=Jk0fa0zBANtWbQf+9CxAIZHFDPJmQ qYhuUFcEKikNWb1p+DwzxG5bSmtjZ720osjNKfmYFmp1nEcUp1SHzquiHqNfcQy4 ctofaOZPjN8fsMBOfg4MCSlUychW8Bszy5fcRB0e8gQRwXE6hdSAnC5xfWBTumEx DO2t6EnU4cWPt6thO6r295tlwlG1LfpMQeul2+55INFHXz4X1JKDajAvVELl1b/h yyJr/UJy1KPSarh3P+HRxPceugNj0TJbIx27W3oFf/iQkgAf3WENMCAXi2+v1MU0 kI/Usyl1B4+Hdob7GqNcndwVWbPkN15fmQrCL7RbTUf1wqWJDIoGEGPsw== 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=Crc5lY8+8kAgyfg0VFPjqfXIPSIUBFx9BFUoUUZKTVo=; b=P2/D8Nw4 FmL16sKU5bpgrBkQ84i4Ln8lMYxK/EcYBUnfEu24JTkN8GEbY8/Dnk0YzbmGyX/B 9WGKp9CHQcbRYRoA7g+MK9FtNSy/31FTJjL2fVP7GAc7+BVG3ao6422MBUxiahqs tDpeaNt6STiV+DkvU+U0L/n6+NconcLnT0kqHLu+QSdsUsX3prsDeIA9X370uK26 n0rBzQmz8v0pSlj7U8N8P+1pO60lCuJzUMmFlVvktiICB96BZqp8SQ9SdnTVN1a9 IyXdFa2c6FoXvL+icWRUBrBKR0w8cwR2PcQxDX51E/TDKdkd0/fBOpYv44yVl162 sCpxHqU9bSstoQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudejiedguddttdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepmfhlrghu shculfgvnhhsvghnuceoihhtshesihhrrhgvlhgvvhgrnhhtrdgukheqnecuggftrfgrth htvghrnhepueelteegieeuhffgkeefgfevjeeigfetkeeitdfgtdeifefhtdfhfeeuffev gfeknecukfhppeektddrudeijedrleekrdduledtnecuvehluhhsthgvrhfuihiivgepvd enucfrrghrrghmpehmrghilhhfrhhomhepihhtshesihhrrhgvlhgvvhgrnhhtrdgukh X-ME-Proxy: From: Klaus Jensen To: qemu-devel@nongnu.org Subject: [PULL for-6.0 v2 03/10] hw/block/nvme: fix the nsid 'invalid' value Date: Wed, 7 Apr 2021 07:46:28 +0200 Message-Id: <20210407054635.189440-4-its@irrelevant.dk> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210407054635.189440-1-its@irrelevant.dk> References: <20210407054635.189440-1-its@irrelevant.dk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=66.111.4.29; envelope-from=its@irrelevant.dk; helo=out5-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 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 , Gollu Appalanaidu , Max Reitz , Klaus Jensen , Stefan Hajnoczi , Keith Busch 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 Reviewed-by: Keith Busch --- 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.1 From nobody Fri Mar 29 15:46:48 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=1617775148; cv=none; d=zohomail.com; s=zohoarc; b=fr4lm8IaIHGQAie8SHwvorbnrNw/LKXxcICMqFCFRXWn/avy+5UcVtUdCdwvSni60eGcYwKzNj75StK/qmVpccsKFcLkXdPBtFyGBRKdbpIz4iaSrMdKPQPHEgI65Vz0UX/dQ3NJsNb8WcTNxvF0QFjcVwosdSDL2sr8K/6a/oM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1617775148; 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=weMSRVXTf60n3ESV7JtZnQQPeh6az/lUiqnAZxFrNPQ=; b=hm6vJRCeu5UDXvCgwHhSPkrFjcxyONGLY0Q8I5cnyUNqWYIbp9j+mNf+Mx3Xwnbzqt2T0KKk7MTT9M3PA8LST8S120aPCQ0dFyr4LjNJ+4v0t3BqZJuVmwdjNjOokCEjDlw9trnkePPu9h4Bv8aGM4q91d8CqmJpTtX+vCeXR3E= 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 1617775148748507.85828113337027; Tue, 6 Apr 2021 22:59:08 -0700 (PDT) Received: from localhost ([::1]:56930 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lU1DX-00013k-JI for importer@patchew.org; Wed, 07 Apr 2021 01:59:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44980) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lU11e-00029c-0N; Wed, 07 Apr 2021 01:46:51 -0400 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:58913) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lU11a-00052t-OO; Wed, 07 Apr 2021 01:46:49 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id E52E25C00F7; Wed, 7 Apr 2021 01:46:45 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Wed, 07 Apr 2021 01:46:45 -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 9EEA81080067; Wed, 7 Apr 2021 01:46:43 -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=weMSRVXTf60n3 ESV7JtZnQQPeh6az/lUiqnAZxFrNPQ=; b=TiWZJeADYf6s2MBPv2emc7/IG69zV +aaAIPX4sTrlyTB5ASuzmz/0LCI8g8ZMu8MEN3YEpmSThILvqqk/lrXfEeEzUpDw esolFX8Ja6+/LQS0YcLnlO6uXrq6t7TUJAFdKIUf+m/lC/MW2v3rroI3z3GQvV78 9OrXHpQ0xhWNbb0ukWWTNCZBNif9lGpEt1WqGjPUYzIYtVjP0zj3uGwjXmOQlvJK 8OhMOfphMgU0vyMT3/57McjMyDXKGQYxE24px6/ZMC++MOjvjFM5by+mH/jPFIRl EcHvlCWSG78gggOxXq1+4TyHuot1h+XZDW3YqAci1Oquaext1bEfXimww== 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=weMSRVXTf60n3ESV7JtZnQQPeh6az/lUiqnAZxFrNPQ=; b=t1LPPQYQ Q87ux1KfkWaUqFHNIiTOvbfwVDmx6tNh9rXsJwJ7hl4us7WPPeDDXyUj1iQmHpXS 5f6o4oZwgTY2ztD6kKfwKRgAuBcZ9xcdJokV6jwUVuojJL0lk3xFvMmOS591DZIT jsxtc4DKZO3SlYkp+XQumtq039mLNeLeOUuaRsvfDAkBtSp3M1BtvwaGeEXVCvh8 b47tHPXkBqpK5P05+Hc5ZtAn9y+lxqLingZrck6u+nyOLF3ARQuZWrZkLBsqcI86 1ZNFHqBzMQbulP8pwMWLbhFdcJ4T18yMG8Ee15idXyMKjNJ7+4LI+j+ostG5gd7f mLvgisq2GgFicw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudejiedguddttdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepmfhlrghu shculfgvnhhsvghnuceoihhtshesihhrrhgvlhgvvhgrnhhtrdgukheqnecuggftrfgrth htvghrnhepueelteegieeuhffgkeefgfevjeeigfetkeeitdfgtdeifefhtdfhfeeuffev gfeknecukfhppeektddrudeijedrleekrdduledtnecuvehluhhsthgvrhfuihiivgeptd enucfrrghrrghmpehmrghilhhfrhhomhepihhtshesihhrrhgvlhgvvhgrnhhtrdgukh X-ME-Proxy: From: Klaus Jensen To: qemu-devel@nongnu.org Subject: [PULL for-6.0 v2 04/10] hw/block/nvme: fix warning about legacy namespace configuration Date: Wed, 7 Apr 2021 07:46:29 +0200 Message-Id: <20210407054635.189440-5-its@irrelevant.dk> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210407054635.189440-1-its@irrelevant.dk> References: <20210407054635.189440-1-its@irrelevant.dk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=66.111.4.29; envelope-from=its@irrelevant.dk; helo=out5-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 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 , Gollu Appalanaidu , Max Reitz , Klaus Jensen , Stefan Hajnoczi , Keith Busch 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 Reviewed-by: Keith Busch --- 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 9edc86d79e98..8d1806cc942f 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 7244534a89e9..09c38fb35e0d 100644 --- a/hw/block/nvme.c +++ b/hw/block/nvme.c @@ -5805,7 +5805,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.1 From nobody Fri Mar 29 15:46:48 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=1617774952; cv=none; d=zohomail.com; s=zohoarc; b=TRKt71eMHhdUPRqzdJTYnT5MjSn0K4vOyuL2xyszF56b1kUjiNzrMTbvB34g5Pxka1ArYNqSSppDPiWD2DEWXK4nPL1Y9DSMyBQ9QLlD6zE/uPYesCqa3Srj1CDmaX6RL9rNxA5UpwiOGsXfuU+hgXUJ2RIh0EMhR+yqcCeX/vU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1617774952; 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=xDUhosuBbLDU0K1B3DBX8t/+krTqG5VpGGmDeVQV7Bg=; b=efxj5CMSOtqZAaJXg8BwlFF8kgjwUZa3AfUYRxLsbfVenDm1bNQx1/eLQ2HHZqii10BLc1kYRrw8izvNY5Ge2DsyZE+j8xuLly4EUXCb1niCPAWEA/OGupRZBppwmUWE9zKoAozCv9w3sr7SKn7/l4oCnGFQKWvJFXZBTyTQWP8= 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 1617774952221942.9970152552658; Tue, 6 Apr 2021 22:55:52 -0700 (PDT) Received: from localhost ([::1]:51434 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lU1AM-0007A4-Ny for importer@patchew.org; Wed, 07 Apr 2021 01:55:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44998) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lU11f-0002A8-V3; Wed, 07 Apr 2021 01:46:51 -0400 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:38589) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lU11b-00053J-Bd; Wed, 07 Apr 2021 01:46:51 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id 888AE5C00F9; Wed, 7 Apr 2021 01:46:46 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Wed, 07 Apr 2021 01:46:46 -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 222BF108005F; Wed, 7 Apr 2021 01:46:45 -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=xDUhosuBbLDU0 K1B3DBX8t/+krTqG5VpGGmDeVQV7Bg=; b=W8CkUUL/dPOglG8AoL/kA0Er4JkSW 24opMxEpS57kJjezorn3JMM/Xi86Rze6brZClXPujH4re/cz/X2TfM4jusGQz0JD 2mX1CyjJNfl43mXYGK4jb9Vy2vO2P4Po7UYl301HahadpR4d5B/NJBJCyMcLc/fw bQYXIprm9+M0fXnquavN7UbZwHNQeWdXTVZy+B1VkzXps3ZvVxmZ1cTsOabgI0yk /94BtRnYPESpbvO52KKqsT9yV69hTSeizrJcOWhqpA63hAiavzYbr30TQSDpxLsg YZGlUhNVbyDJ0Db/H0EY/m+HeiRtrsp954GxFAvJjyb5/HDJfU3KO3igA== 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=xDUhosuBbLDU0K1B3DBX8t/+krTqG5VpGGmDeVQV7Bg=; b=p6rf2aiC yAelTIPR4aQq7FaHhcdHb0ovzQosh7LxFbVb9aZb8cWiz7KnFlIEM16KLCFu9oRi HUjt7XTCD1Tu3+1enGAunBaH1YpugHiLBZZccxloIwvdohFBkvZov2CgXZdjtk1W EspRuVWnLYzLan6KkH/CbiQJSKK6UIFvpX/4CqkvwrS0XfJz50OXkTd1GFs5+Bdp TxnGNssdiEGeX/CKBVesaHKkLMINCmEsBHQPFR1rVH+TWTyTjIH3mdbJkv7j2cR7 xNvkO8waNdZc8iB4QS2E3qIu7ufwq8iwA1DoQnMmnwAEr8uU34P09z/ure2i6oNQ 8MZWwAMbBqXVew== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudejiedguddttdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepmfhlrghu shculfgvnhhsvghnuceoihhtshesihhrrhgvlhgvvhgrnhhtrdgukheqnecuggftrfgrth htvghrnhepueelteegieeuhffgkeefgfevjeeigfetkeeitdfgtdeifefhtdfhfeeuffev gfeknecukfhppeektddrudeijedrleekrdduledtnecuvehluhhsthgvrhfuihiivgeptd enucfrrghrrghmpehmrghilhhfrhhomhepihhtshesihhrrhgvlhgvvhgrnhhtrdgukh X-ME-Proxy: From: Klaus Jensen To: qemu-devel@nongnu.org Subject: [PULL for-6.0 v2 05/10] hw/block/nvme: update dmsrl limit on namespace detachment Date: Wed, 7 Apr 2021 07:46:30 +0200 Message-Id: <20210407054635.189440-6-its@irrelevant.dk> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210407054635.189440-1-its@irrelevant.dk> References: <20210407054635.189440-1-its@irrelevant.dk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=66.111.4.29; envelope-from=its@irrelevant.dk; helo=out5-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 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 , Gollu Appalanaidu , Max Reitz , Klaus Jensen , Stefan Hajnoczi , Keith Busch 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 Reviewed-by: Keith Busch --- hw/block/nvme.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/hw/block/nvme.c b/hw/block/nvme.c index 09c38fb35e0d..0898ece2af31 100644 --- a/hw/block/nvme.c +++ b/hw/block/nvme.c @@ -4868,6 +4868,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) { @@ -4917,6 +4932,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.1 From nobody Fri Mar 29 15:46:48 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=1617775482; cv=none; d=zohomail.com; s=zohoarc; b=UZ7IMY8Ags+a6nKfmFB4BWeMakuRzPWx7YIWHTmY01BW3h5HCveotzePIxi3wSirZ+1htqVtjn5WrBgUpJSc5m49HbNWguTLPXs/MhInPGkTKUCeDpFlgYbAs5qtaXNnJ6sIFG/dk9e9Pbw/zs8s1rBqr7y5ZgDEYOX75NB0GXE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1617775482; 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=KaUL6/wAQacEczt570h05DZE6fvl4ueR+/YrAAujjqc=; b=ls5lF7A6LGUTUoDB3O7o/XvBXudqQIT9ByhYL2hsjxgqAzkYdvNT/9Yu5ii40mr0o8EPOLUSVSJuFhksxkAk1JIN19UVpTb7jH756Qj4U6O9N9fR/t1Y+K/VqZYjCdiRQCR/4VXBhMS7OI8s96213lrBzSg4Ib46IN3VSL+rKFM= 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 1617775482052758.9044592007085; Tue, 6 Apr 2021 23:04:42 -0700 (PDT) Received: from localhost ([::1]:33456 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lU1Iu-0003Hi-QE for importer@patchew.org; Wed, 07 Apr 2021 02:04:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45012) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lU11g-0002An-CW; Wed, 07 Apr 2021 01:46:52 -0400 Received: from new4-smtp.messagingengine.com ([66.111.4.230]:46317) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lU11c-00054M-WC; Wed, 07 Apr 2021 01:46:52 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailnew.nyi.internal (Postfix) with ESMTP id 1B9C058086F; Wed, 7 Apr 2021 01:46:48 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Wed, 07 Apr 2021 01:46:48 -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 9FEB4108005C; Wed, 7 Apr 2021 01:46:46 -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=KaUL6/wAQacEc zt570h05DZE6fvl4ueR+/YrAAujjqc=; b=Wjf+3ITmSg77umA1BUhxNLZZ9+a/4 L15JbJFEl491pME9s8BLQ4hM4YIbp284y0pE1ANp15CVstirgdkKmJTZYhgJT3Ul yHMVRt8s/FZ4xez0t65CB1P7IqxPGer6yufLnghhJastSiZ1LZV+aP4Xi/+3Jb7p Dhy1ef6MM33ugRBndJe39a+nkQxpGEpExYlPKg0SvaE1tJMxlVhYO2qqIkI+bgfh R2NoIJxs48j0XiLBOARq0QzCVjAoNT5p0UDMwb4x8li0OFOet/j23A9w6byDtpxC QR3UXE141vkgj/xTW6w0IS+4ZtGBZbFDdtR36qq4k/ooUgr5nqPEnyP2g== 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=KaUL6/wAQacEczt570h05DZE6fvl4ueR+/YrAAujjqc=; b=syQd8FY1 QOLkigxBzW8aoa2PomJfUZjSmmudczB5JeX3p9jJ2c5oXethJ+UpWJesRosZTbck Su+MdArDA7A6wuspD5hoOlpnqXZ4tFnDh5p4s/POdjZQkwbdbZQV+YkC9VH4BJaZ S1t2S8ex8OCrXQ5jHQ0WcHhnxFoLZAYsS+CpoIWjFjeV1gd2Z0WOjQvqzwEZRi1i UBJlQPFrb+j+y/JadVUy6SxtIoZtGEEFFvzPUNfmAaNqhSP8s1zknhcRkz6dWEvt aUKfLwF5AVRRvplUCPvosvrkgoEaBcwczF/qzD+FPggtdif84E2YrUXRFa+QD2jm zfOzQNt4eaVvSw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudejiedguddttdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepmfhlrghu shculfgvnhhsvghnuceoihhtshesihhrrhgvlhgvvhgrnhhtrdgukheqnecuggftrfgrth htvghrnhepueelteegieeuhffgkeefgfevjeeigfetkeeitdfgtdeifefhtdfhfeeuffev gfeknecukfhppeektddrudeijedrleekrdduledtnecuvehluhhsthgvrhfuihiivgeptd enucfrrghrrghmpehmrghilhhfrhhomhepihhtshesihhrrhgvlhgvvhgrnhhtrdgukh X-ME-Proxy: From: Klaus Jensen To: qemu-devel@nongnu.org Subject: [PULL for-6.0 v2 06/10] hw/block/nvme: fix handling of private namespaces Date: Wed, 7 Apr 2021 07:46:31 +0200 Message-Id: <20210407054635.189440-7-its@irrelevant.dk> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210407054635.189440-1-its@irrelevant.dk> References: <20210407054635.189440-1-its@irrelevant.dk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=66.111.4.230; envelope-from=its@irrelevant.dk; helo=new4-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 , Gollu Appalanaidu , Max Reitz , Klaus Jensen , Minwoo Im , Stefan Hajnoczi , Keith Busch 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), regardless 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' parameter) 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 Reviewed-by: Keith Busch Reviewed-by: Minwoo Im --- 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 | 76 +++++++++++++++++++++---- hw/block/nvme-subsys.c | 28 ---------- hw/block/nvme.c | 123 ++++++++++++++--------------------------- hw/block/trace-events | 1 - 8 files changed, 115 insertions(+), 170 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 8d1806cc942f..5d05ec368f7a 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 - 1]; } =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 - 1] =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 - 1] =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..7bb618f18209 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,62 @@ 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)) { + continue; + } + + 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 0898ece2af31..d2dd82496790 100644 --- a/hw/block/nvme.c +++ b/hw/block/nvme.c @@ -93,10 +93,13 @@ * * nvme namespace device parameters * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * - `subsys` - * If given, the namespace will be attached to all controllers in the - * subsystem. Otherwise, `bus` must be given to attach this namespace to= a - * specific controller as a non-shared namespace. + * - `shared` + * When the parent nvme device (as defined explicitly by the 'bus' param= eter + * or implicitly by the most recently defined NvmeBus) is linked to an + * nvme-subsys device, the namespace will be attached to all controllers= in + * the subsystem. If set to 'off' (the default), the namespace will rema= in a + * private namespace and may only be attached to a single controller at a + * time. * * - `detached` * This parameter is only valid together with the `subsys` parameter. If= left @@ -4242,7 +4245,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 @@ -4899,6 +4902,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; @@ -4920,18 +4927,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 - 1] =3D NULL; + ns->attached--; =20 nvme_update_dmrsl(ctrl); } @@ -5825,6 +5837,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 || @@ -5887,75 +5905,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 - 1]) { - 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; @@ -6185,6 +6134,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 - 1] =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); @@ -6216,13 +6177,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.1 From nobody Fri Mar 29 15:46:48 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=1617775229; cv=none; d=zohomail.com; s=zohoarc; b=bHrqWBkYsKtaw2mH8woIpVyM+0eOHXAJVLMO3/RFWnPFmi6LcNNGYJVDRxuhkFUbWX0hgJnJYUConhwX0r69ffpkBTxXur9olflFY1iq0HDVM5GM4UjNBrNBD5TqEQ/sJgyUUKXsLFQzmiE12BOROaAbA7/hrOfboqfxUkEgsQE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1617775229; 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=vTFPlL7TkOoOy4lt5fLjax8HOg2qO6MjMNotMBL4pf4=; b=M1nShmnUDEndvggLdQ4e1/K3nnn+6W5tgCdCHmXCeMmV9wCoYkl17XRZd3u3OHGhv20uUUHC7fN+r1mS5/o6HpEpkIgK2Flj8wWlXlf7X64U4g+O+ejntVA33rXHAU+G+gyrYOWV47QWc/yLVbCpDCgqYeRZWXf42WD3RdH9XI0= 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 1617775229861705.9544389612471; Tue, 6 Apr 2021 23:00:29 -0700 (PDT) Received: from localhost ([::1]:58010 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lU1Ep-0001Vm-KM for importer@patchew.org; Wed, 07 Apr 2021 02:00:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45044) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lU11i-0002Da-N2; Wed, 07 Apr 2021 01:46:54 -0400 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:60053) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lU11g-00056C-2O; Wed, 07 Apr 2021 01:46:54 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 8BD015C00E1; Wed, 7 Apr 2021 01:46:49 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Wed, 07 Apr 2021 01:46:49 -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 3FFCD1080068; Wed, 7 Apr 2021 01:46:48 -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=vTFPlL7TkOoOy 4lt5fLjax8HOg2qO6MjMNotMBL4pf4=; b=DWf5trVzC/IOYsY/u84h03ICxLAyL 4LZMK2HEpIKNu0QMZnuakLSRXP9D83/CQCTAmKIfdRpGY/Xsd4SeXZmqdPiqIJNi /YLSDwbH2NPtbxDNsIhaofxTMuqy4hJXCWY47ZgIjq6xpjOiEaOBPVjd3zNmKJ06 HckYIKdS+azjV/cHl+G2PxqaBvDcy3YnzAoKDkaJbE6h6GOysJ6qg0LZ2EkOFgCZ Qot1gp0K8/VJO1dENQtMuYKGJnMiKrE48GK+VyRoMAaPMEFr1R+pLWdxRKMfcTKB 1ejcO0ZWypstgu2oAcMgYixB0iGzSZb9EJYGqP1TfOmvdZQcfXUQolMUQ== 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=vTFPlL7TkOoOy4lt5fLjax8HOg2qO6MjMNotMBL4pf4=; b=sZg8Turq nHfBXyetKlMonOVhpIM6Oqh0UcmXs8zonfKbQ+Y2G4K3baIqAl040u9J7ULLW4MN jb7OL/3Ts84QQ4HYFV2d8ZZfuYSDyk5/ZWlH+bSojmqgXPKkaxSOp/tOSFGVZHtS RELayixukd+icaMZFAspy8N1J4hu9JPvf+NHzJHoe55q4iyTKFOY+VWCVB14hgeK CXs9lrlSBx4YJhy4a/oXf6elrAYY1fFtIVUKrSQN2gHH1LXLVF3kNCtDp4s/hs8Z t7LYW5bYcKti7LejDLBY3lBycrY4Vapza3mCyXB9N9h73ctANS29HEpcifHQdUjN SUOmNq+Z8O9m4Q== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudejiedguddttdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepmfhlrghu shculfgvnhhsvghnuceoihhtshesihhrrhgvlhgvvhgrnhhtrdgukheqnecuggftrfgrth htvghrnhepueelteegieeuhffgkeefgfevjeeigfetkeeitdfgtdeifefhtdfhfeeuffev gfeknecukfhppeektddrudeijedrleekrdduledtnecuvehluhhsthgvrhfuihiivgepfe enucfrrghrrghmpehmrghilhhfrhhomhepihhtshesihhrrhgvlhgvvhgrnhhtrdgukh X-ME-Proxy: From: Klaus Jensen To: qemu-devel@nongnu.org Subject: [PULL for-6.0 v2 07/10] hw/block/nvme: add missing copyright headers Date: Wed, 7 Apr 2021 07:46:32 +0200 Message-Id: <20210407054635.189440-8-its@irrelevant.dk> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210407054635.189440-1-its@irrelevant.dk> References: <20210407054635.189440-1-its@irrelevant.dk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=66.111.4.29; envelope-from=its@irrelevant.dk; helo=out5-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 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 , Klaus Jensen , Stefan Hajnoczi , Keith Busch Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Klaus Jensen Add missing license/copyright headers to the nvme-dif.{c,h} files. Signed-off-by: Klaus Jensen Reviewed-by: Keith Busch --- hw/block/nvme-dif.h | 10 ++++++++++ hw/block/nvme-dif.c | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/hw/block/nvme-dif.h b/hw/block/nvme-dif.h index 5a8e37c8525b..524faffbd7a0 100644 --- a/hw/block/nvme-dif.h +++ b/hw/block/nvme-dif.h @@ -1,3 +1,13 @@ +/* + * QEMU NVM Express End-to-End Data Protection support + * + * Copyright (c) 2021 Samsung Electronics Co., Ltd. + * + * Authors: + * Klaus Jensen + * Gollu Appalanaidu + */ + #ifndef HW_NVME_DIF_H #define HW_NVME_DIF_H =20 diff --git a/hw/block/nvme-dif.c b/hw/block/nvme-dif.c index e6f04faafb5f..81b0a4cb1382 100644 --- a/hw/block/nvme-dif.c +++ b/hw/block/nvme-dif.c @@ -1,3 +1,13 @@ +/* + * QEMU NVM Express End-to-End Data Protection support + * + * Copyright (c) 2021 Samsung Electronics Co., Ltd. + * + * Authors: + * Klaus Jensen + * Gollu Appalanaidu + */ + #include "qemu/osdep.h" #include "hw/block/block.h" #include "sysemu/dma.h" --=20 2.31.1 From nobody Fri Mar 29 15:46:48 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=1617775812; cv=none; d=zohomail.com; s=zohoarc; b=lSpyksLvSSGeZelfIR+FApe+CSFoy6bY+9ShX20P75m32OcgmWwqnFIx8iz9OV9XmfCiCKQEajIsbYN65UVn8qAWKI05LA/SpLpQES9qFLENd5LTdGium94KSqPmLmURRHUudV1l4pmkTzHlGznTfzeDQjQa415y8w2YmEyWblU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1617775812; 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=m4zssAaPDs4gcHy6p0aY+ZOL0+f4nd8B7oTmX+tpuM0=; b=S5ygGGHPdNWK9pj9P5oDd5IQvMHfjppU1p/XOqAeeAn1kQGWKT3IVY4z3fZymBSUjRzFF6bwCoZ3A5aaFJXtSIbnrSVj/CqatLsUACkczduO/r+BOypasC5YBK+HM3cxyxNOdAzqRjwLHzJ2RZmX5SuqsPw68zAZ3BdHQpM18fw= 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 1617775812323107.4254397857868; Tue, 6 Apr 2021 23:10:12 -0700 (PDT) Received: from localhost ([::1]:37794 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lU1OF-0005KX-5z for importer@patchew.org; Wed, 07 Apr 2021 02:10:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45054) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lU11j-0002EH-6X; Wed, 07 Apr 2021 01:46:55 -0400 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:46047) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lU11g-00057S-5y; Wed, 07 Apr 2021 01:46:54 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 022205C0117; Wed, 7 Apr 2021 01:46:51 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Wed, 07 Apr 2021 01:46:51 -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 A059E1080063; Wed, 7 Apr 2021 01:46:49 -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=m4zssAaPDs4gc Hy6p0aY+ZOL0+f4nd8B7oTmX+tpuM0=; b=I1QoRYLScsN6uArxZP6k4XXQwWOMU zQTWdpwGOg1NjYz13yvRi8PWALxJ/C72H0JYS4rJZyaPIN9U53fMbZ4k5gZbH8ng D1I3nKNXJ6HnQQWLqIW3sWil+4rmKMGgLw7uzfggKn0e7vPE02VijIw2qOHUWy7+ UHu/9/EUDRs33fnBd+jX2CY2E5HbjOe6lgeJ8cuqjUf16tTDevemGZpbUiBy0gMI cBOrBaK7fn9hA3oFTk8NAGHHbuZSt4jZDw42KZdtEwb+aYcnDSKJKneDsgpFeGKo +ORn09ymIbc7Sv2T2gY7JR6b/cnxMLHbTap4tIfU5oyVgzXIq/pPGc9jQ== 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=m4zssAaPDs4gcHy6p0aY+ZOL0+f4nd8B7oTmX+tpuM0=; b=CV2mpk7N CPctKjBjQ/dcahiMXbyjbsOPPDIrRU4G1u2p0Ur477Gh3ZbiCJDCEa9MtezkVJfA XewNs65tW0goZXh2uJIzsdo+Ax9AQ6hkTSC3BD2X+inQ5Pyw5h99baQCPpfO2YYt K/YzMVJodZ+xSyPqgmlQmkDTwSF1D1BLlVqpH6jsR1C9rZ0NFnvYPumzdZz7DjCY ImxVZKVqy3EqjT/YfRXhmNOP82fW40CXCSrrGGzUYOMGWJqziqLtrve4Z/AIDtOh cuQMauXy2k0POGNwb5rsMLXII2s4kU6inLvg/lK88QFopIrL4Z26uIpkkBgOv0UA A1L1X/El2a+o2A== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudejiedguddttdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepmfhlrghu shculfgvnhhsvghnuceoihhtshesihhrrhgvlhgvvhgrnhhtrdgukheqnecuggftrfgrth htvghrnhepueelteegieeuhffgkeefgfevjeeigfetkeeitdfgtdeifefhtdfhfeeuffev gfeknecukfhppeektddrudeijedrleekrdduledtnecuvehluhhsthgvrhfuihiivgepvd enucfrrghrrghmpehmrghilhhfrhhomhepihhtshesihhrrhgvlhgvvhgrnhhtrdgukh X-ME-Proxy: From: Klaus Jensen To: qemu-devel@nongnu.org Subject: [PULL for-6.0 v2 08/10] hw/block/nvme: fix ns attachment out-of-bounds read Date: Wed, 7 Apr 2021 07:46:33 +0200 Message-Id: <20210407054635.189440-9-its@irrelevant.dk> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210407054635.189440-1-its@irrelevant.dk> References: <20210407054635.189440-1-its@irrelevant.dk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=66.111.4.29; envelope-from=its@irrelevant.dk; helo=out5-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 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 , Klaus Jensen , Minwoo Im , Stefan Hajnoczi , Keith Busch Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Klaus Jensen nvme_ns_attachment() does not verify the contents of the host-supplied 16 bit "Number of Identifiers" field in the command payload. Make sure the value is capped at 2047 and fix the out-of-bounds read. Fixes: 645ce1a70cb6 ("hw/block/nvme: support namespace attachment command") Cc: Minwoo Im Signed-off-by: Klaus Jensen Reviewed-by: Minwoo Im --- hw/block/nvme.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/block/nvme.c b/hw/block/nvme.c index d2dd82496790..87891d4d0f3b 100644 --- a/hw/block/nvme.c +++ b/hw/block/nvme.c @@ -4920,6 +4920,7 @@ static uint16_t nvme_ns_attachment(NvmeCtrl *n, NvmeR= equest *req) return NVME_NS_CTRL_LIST_INVALID | NVME_DNR; } =20 + *nr_ids =3D MIN(*nr_ids, NVME_CONTROLLER_LIST_SIZE - 1); for (i =3D 0; i < *nr_ids; i++) { ctrl =3D nvme_subsys_ctrl(n->subsys, ids[i]); if (!ctrl) { --=20 2.31.1 From nobody Fri Mar 29 15:46:48 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=1617774879; cv=none; d=zohomail.com; s=zohoarc; b=kMnoizOxvE1BH7xMTYeAhCoeIPnQycsn+vZCvKJC2ldOmwNjEiQNMhLi4aoR5RWgYeW4+efkPdZO+LlHZseCzMEAQi5lkgfMf5FX6zmaCw+PAK5FhmdXPId8kB6eNKF8lM/x4OnbbFJ7/qBSvGsC3IKP7DWAfioKeXJtRUsMi2A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1617774879; 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=+55KtwyUZoLCDC3kba6abNjh+1GG42zd8xU3pXg2m/E=; b=E8UVyTSYBVtVtn+E5YDWJou47u4bHECDvkMfF19pNH/mVO0W2IiKPvUG/DrxI4tvYURkRNDkcfwcqo30QNn2Fc9mcVwlxCy6isgq85pvCkZxAwjFxJ3TV7ftVOulHlfWg9MR2SpW7K91JBAlKiqFHWibaCDmi/SU9OuEG5Js3/Y= 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 1617774879558860.8071824189574; Tue, 6 Apr 2021 22:54:39 -0700 (PDT) Received: from localhost ([::1]:49882 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lU19C-0006WY-Ed for importer@patchew.org; Wed, 07 Apr 2021 01:54:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45052) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lU11j-0002ED-5D; Wed, 07 Apr 2021 01:46:55 -0400 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:56919) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lU11h-00057j-BY; Wed, 07 Apr 2021 01:46:54 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 8E6505C0061; Wed, 7 Apr 2021 01:46:52 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Wed, 07 Apr 2021 01:46:52 -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 2A1ED1080063; Wed, 7 Apr 2021 01:46:51 -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=+55KtwyUZoLCD C3kba6abNjh+1GG42zd8xU3pXg2m/E=; b=Kk9TZJ6ZxTprB4LYvIl55WOD1R26K M/Mx4dAI+mGRzjE1ZXl69H2CqdOQNvQfZDi1kYiFoKJ+YeuvJ8Ku/g98MW5USezH ilt4lETFlO/OwYcZzmRActai/tSiz5vXM5WbkDD1HgKvPP+ni1AHOS9JlUvVTr1H O0nAIR+x7xiFHg/HAojSY4WtZFaUy9DOFJZ3QQrzNV0s06hwOULtMfafCrE565xS iuyIlT5p4IIIcsArrtESwutKlM6nToiuSY8UZFsoAclm9KMRqsbBUcjbeHxQUIif WQV/zPuSYN04bgMG2a54Z2C80f/CGSzh2c9Saf8kLufkAyAwq2LR7cCVw== 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=+55KtwyUZoLCDC3kba6abNjh+1GG42zd8xU3pXg2m/E=; b=GEJtedkl Bg4RMLaPZLI1yIQQEszUglAfAjXrOt+AiM5ASI2+/hKQQSslJRGsT3Tp3wAOKOAg ncYNsgbnYYs17Bd7WsDzatqDIf9ey7rqeWwWOTdWtjhTov4KcFVMDQNHOLieXjk1 GjFgOvQ6KO1CqIiYvI9j1MOVEchtGCJxUfu2/ZgCngDwq7IAEstGJTHtwKpRV/4q anQbwQlD4FCYV0yAUnyH6/I/qVAej9vyVIcEKHGWYGTCzYFHWXsnCxUFordeTqdC 2FVep7oUh6OqpgrVK/nqBkAoJPBe9iuQAuhAAzZnLdAPVuApPD7tB5ZaXoziNsH4 IDDL0EchP8o3sA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudejiedguddttdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepmfhlrghu shculfgvnhhsvghnuceoihhtshesihhrrhgvlhgvvhgrnhhtrdgukheqnecuggftrfgrth htvghrnhepueelteegieeuhffgkeefgfevjeeigfetkeeitdfgtdeifefhtdfhfeeuffev gfeknecukfhppeektddrudeijedrleekrdduledtnecuvehluhhsthgvrhfuihiivgepfe enucfrrghrrghmpehmrghilhhfrhhomhepihhtshesihhrrhgvlhgvvhgrnhhtrdgukh X-ME-Proxy: From: Klaus Jensen To: qemu-devel@nongnu.org Subject: [PULL for-6.0 v2 09/10] hw/block/nvme: fix assert crash in nvme_subsys_ns Date: Wed, 7 Apr 2021 07:46:34 +0200 Message-Id: <20210407054635.189440-10-its@irrelevant.dk> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210407054635.189440-1-its@irrelevant.dk> References: <20210407054635.189440-1-its@irrelevant.dk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=66.111.4.29; envelope-from=its@irrelevant.dk; helo=out5-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 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 , Klaus Jensen , Minwoo Im , Stefan Hajnoczi , Keith Busch Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Klaus Jensen nvme_subsys_ns() is used in contexts where the namespace identifier is taken from an untrusted source. Commit 3921756dee6d ("hw/block/nvme: assert namespaces array indices") tried to guard against this by introducing an assert on the namespace identifier. This is wrong since it is perfectly valid to call the function with an invalid namespace identifier and like nvme_ns(), nvme_subsys_ns() should simply return NULL. Fixes: 3921756dee6d ("hw/block/nvme: assert namespaces array indices") Fixes: 94d8d6d16781 ("hw/block/nvme: support allocated namespace type") Cc: Minwoo Im Signed-off-by: Klaus Jensen Reviewed-by: Minwoo Im --- hw/block/nvme-subsys.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/hw/block/nvme-subsys.h b/hw/block/nvme-subsys.h index 24132edd005c..1cbcad9be23e 100644 --- a/hw/block/nvme-subsys.h +++ b/hw/block/nvme-subsys.h @@ -49,12 +49,10 @@ static inline NvmeCtrl *nvme_subsys_ctrl(NvmeSubsystem = *subsys, static inline NvmeNamespace *nvme_subsys_ns(NvmeSubsystem *subsys, uint32_t nsid) { - if (!subsys) { + if (!subsys || !nsid || nsid > NVME_MAX_NAMESPACES) { return NULL; } =20 - assert(nsid && nsid <=3D NVME_MAX_NAMESPACES); - return subsys->namespaces[nsid]; } =20 --=20 2.31.1 From nobody Fri Mar 29 15:46:48 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=1617775613; cv=none; d=zohomail.com; s=zohoarc; b=RxnTuu9nw54gMPUi+JVcnfdqD1kB/i7Bgf1PJ/xJhrypX3ij2h91j6JSKiBICb7WckfTRZB2NixniGlyWccKJIcYqkDVuxp5tQkYG6Ilmrf8zmrRoILrV4k2I8CZGdQngSSfOX1wX/1si3k8/ioOQcflowgirzJ6omnRfZCjGnU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1617775613; 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=wP0e4oiBcmbpZ2/CJUbzOJTfvUrQHGu1I7DHqbyh2sQ=; b=jLbqGS0TPlMgRparZ7N8yl5ZYc31YMqKYzXx0i8wIpT2DR0mMaxMz/Ra//PLVID+fAcd8w7qnn1rVx810bOpV3Zt8pctRer7UzFxLTEjuTG4LfUM/i/1N7PCmfKpcd72mZk4Iw4nMASbkKIEoneBlfhuV9jRFOEU1M3Ze1ychfA= 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 1617775613145251.40306798844358; Tue, 6 Apr 2021 23:06:53 -0700 (PDT) Received: from localhost ([::1]:35180 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lU1L1-00042x-Kk for importer@patchew.org; Wed, 07 Apr 2021 02:06:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45066) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lU11k-0002GN-Af; Wed, 07 Apr 2021 01:46:56 -0400 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:47971) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lU11i-00058U-Px; Wed, 07 Apr 2021 01:46:56 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id 101295C00EC; Wed, 7 Apr 2021 01:46:54 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Wed, 07 Apr 2021 01:46:54 -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 9F5BE1080063; Wed, 7 Apr 2021 01:46:52 -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=wP0e4oiBcmbpZ 2/CJUbzOJTfvUrQHGu1I7DHqbyh2sQ=; b=Kf+6ftevwQJaggnGgebt/KNyv7tfF 0Mi+dViLhy3cVev6wnEUsLuQXupVICA6CAeexeQd9hwHxEZLH3+LVONxMDvO8f+a rDdD9zK1MDTO/V6XuMByBdrC3iXOnb3krxwtPxPvtb1wY5uCNEiFOYFlon/ZHDyb UQkq+f3c6dt17yJs5U00burzqN87WPtWse8BNqXx446ombeFc3CG4qPAS0D1+hJF 9i3dmlStKiiSbKoX9AhzbMYOaXDHIvh9YAuEBsZWpLKnI9N0UWiSuU7q6a7z3v+3 oPo5MzfYsUly24pZL1qSjqAq7x61/M0xtK8vgp6aVgsL6vtbhdQV597UQ== 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=wP0e4oiBcmbpZ2/CJUbzOJTfvUrQHGu1I7DHqbyh2sQ=; b=OHhCQvME Hryu9OzIIY+SAG+RDoFgx7UTW7EMDT9U5mQ+qDl4lWzfLDXcve30XcF+L+xTf4AR qbo8ocJuYgTf4fm78UbIgDF/T5iAYaAcnCpEQ51s3992+NW6JgCpjWXp3JeAWU4s 1bemaiEonZVhq6YkRYVG1MOELNQN9F0fD7O7iHbpi8bEfwq7xU6BkPtwLWQp7CqA /rCURL4gkzJ47ba3me18S+ImigknPfUjN++T3L/amN0twZ0TpvjVyXsUpvPGX4je WjJgdS0Xoo4BdsvL9kfyysvNvFnqb3i75NoXeIUYapHAoIvE9ncf4IqW4BKC5WYl XiIffbU8243xpQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudejiedguddttdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepmfhlrghu shculfgvnhhsvghnuceoihhtshesihhrrhgvlhgvvhgrnhhtrdgukheqnecuggftrfgrth htvghrnhepueelteegieeuhffgkeefgfevjeeigfetkeeitdfgtdeifefhtdfhfeeuffev gfeknecukfhppeektddrudeijedrleekrdduledtnecuvehluhhsthgvrhfuihiivgepud enucfrrghrrghmpehmrghilhhfrhhomhepihhtshesihhrrhgvlhgvvhgrnhhtrdgukh X-ME-Proxy: From: Klaus Jensen To: qemu-devel@nongnu.org Subject: [PULL for-6.0 v2 10/10] hw/block/nvme: fix out-of-bounds read in nvme_subsys_ctrl Date: Wed, 7 Apr 2021 07:46:35 +0200 Message-Id: <20210407054635.189440-11-its@irrelevant.dk> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210407054635.189440-1-its@irrelevant.dk> References: <20210407054635.189440-1-its@irrelevant.dk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=66.111.4.29; envelope-from=its@irrelevant.dk; helo=out5-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 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 , Klaus Jensen , Minwoo Im , Stefan Hajnoczi , Keith Busch Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Klaus Jensen nvme_subsys_ctrl() is used in contexts where the given controller identifier is from an untrusted source. Like its friends nvme_ns() and nvme_subsys_ns(), nvme_subsys_ctrl() should just return NULL if an invalid identifier is given. Fixes: 645ce1a70cb6 ("hw/block/nvme: support namespace attachment command") Cc: Minwoo Im Signed-off-by: Klaus Jensen Reviewed-by: Minwoo Im --- hw/block/nvme-subsys.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/block/nvme-subsys.h b/hw/block/nvme-subsys.h index 1cbcad9be23e..7d7ef5f7f12b 100644 --- a/hw/block/nvme-subsys.h +++ b/hw/block/nvme-subsys.h @@ -36,7 +36,7 @@ int nvme_subsys_register_ctrl(NvmeCtrl *n, Error **errp); static inline NvmeCtrl *nvme_subsys_ctrl(NvmeSubsystem *subsys, uint32_t cntlid) { - if (!subsys) { + if (!subsys || cntlid >=3D NVME_SUBSYS_MAX_CTRLS) { return NULL; } =20 --=20 2.31.1