From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751871AbcFSXQ7 (ORCPT ); Sun, 19 Jun 2016 19:16:59 -0400 Received: from jbeekman.nl ([149.210.172.151]:59296 "EHLO daxilon.jbeekman.nl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751319AbcFSXQq (ORCPT ); Sun, 19 Jun 2016 19:16:46 -0400 From: Jethro Beekman To: keith.busch@intel.com, axboe@fb.com, linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Jethro Beekman Date: Sun, 19 Jun 2016 16:06:32 -0700 Message-Id: <20160619230634.17229-2-kernel@jbeekman.nl> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20160619230634.17229-1-kernel@jbeekman.nl> References: <20160619230634.17229-1-kernel@jbeekman.nl> X-SA-Exim-Connect-IP: 24.130.121.155 X-SA-Exim-Mail-From: kernel@jbeekman.nl X-Spam-Report: Content analysis details: (1.8 points, 5.0 required) pts rule name description --- ---------------------- -------------------------------------------------- 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: jbeekman.nl] -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP 2.8 UNWANTED_LANGUAGE_BODY BODY: Message written in an undesired language Subject: [PATCH 1/3] nvme: When scanning namespaces, make sure the drive is not locked Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Signed-off-by: Jethro Beekman --- drivers/nvme/host/core.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index 643f457..3a0d48c 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -1377,6 +1377,12 @@ static void __nvme_scan_namespaces(struct nvme_ctrl *ctrl, unsigned nn) } } +static bool nvme_security_is_locked(struct nvme_ctrl *ctrl, + struct nvme_id_ctrl *id) +{ + return false; +} + void nvme_scan_namespaces(struct nvme_ctrl *ctrl) { struct nvme_id_ctrl *id; @@ -1385,6 +1391,11 @@ void nvme_scan_namespaces(struct nvme_ctrl *ctrl) if (nvme_identify_ctrl(ctrl, &id)) return; + if (nvme_security_is_locked(ctrl, id)) { + nvme_remove_namespaces(ctrl); + return; + } + mutex_lock(&ctrl->namespaces_mutex); nn = le32_to_cpu(id->nn); if (ctrl->vs >= NVME_VS(1, 1) && -- 2.9.0