From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 459E0C3A5A6 for ; Thu, 19 Sep 2019 21:35:57 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0E8CC206C2 for ; Thu, 19 Sep 2019 21:35:57 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="ZVQPiOzM"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="dgcn5VQQ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0E8CC206C2 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-nvme-bounces+linux-nvme=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=5/Qeev8dv4eQnG34/eRmHaQr9s4mDW67rMMxhVKhkrk=; b=ZVQPiOzMGvwR5/ f+bHBz6lrrRok3+tmgItuaIQ81/h//jbjp4VeUIp1VKOLfZZkQGoK/DWEtILfYGm84uUnzHUKnXbG thBplY5V+n0DnpwmwtUQjRBYExT6hahJQ2M9ePNTA3wzPuIwgXx1XlxbHYBJ+0q4y69qLmaf6NjsT F5khJqtozhJXEevEom1L3ypPHZTdaGuZutS1dfJdqpbL78+suvZeswC+aCrJefhfIIhOnNgd3GBmc HIk07jEPFN2yRekJLYVBOvizdr0J4gRi8Al8Nct8GH3x0yrjH6ul9Q9aJtCgdaBsfFbgfRdj3GATC 8di9ju45QCDTenk2AlkQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.2 #3 (Red Hat Linux)) id 1iB45i-0004LK-SI; Thu, 19 Sep 2019 21:35:54 +0000 Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.92.2 #3 (Red Hat Linux)) id 1iB44Z-0002Es-SX for linux-nvme@lists.infradead.org; Thu, 19 Sep 2019 21:34:45 +0000 Received: from washi1.fujisawa.hgst.com (unknown [199.255.47.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id C462121A49; Thu, 19 Sep 2019 21:34:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1568928883; bh=Jo+ECpcM1MVIY0/GS1v6S+bTLjORFLcWtVSh23gaVbw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dgcn5VQQbGFw7wRqEBWNJi/MPRHsLJY0k/0NXN8zJGeR1h1O9sseyyNuf/SzVuu/q 7Fu6kNnl1EB84dNJjlfpu3VSWXC21PsP7l4V4dsx8BJM547XB6fEzzDWOyNmCz+aX7 F8+XLqoFwpkb1ScWjojKodRGX4ea9h6+4tNhC18I= From: kbusch@kernel.org To: linux-nvme@lists.infradead.org, Sagi Grimberg , Christoph Hellwig Subject: [PATCHv2 5/6] nvme: Prevent resets during paused states Date: Fri, 20 Sep 2019 06:34:30 +0900 Message-Id: <20190919213431.7864-6-kbusch@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190919213431.7864-1-kbusch@kernel.org> References: <20190919213431.7864-1-kbusch@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190919_143444_347555_5623A859 X-CRM114-Status: GOOD ( 11.79 ) X-BeenThere: linux-nvme@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Keith Busch , Edmund Nadolski , James Smart Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Linux-nvme" Errors-To: linux-nvme-bounces+linux-nvme=archiver.kernel.org@lists.infradead.org From: Keith Busch A paused controller is doing critical internal activation work in the background. Block any controller reset from occurring during this period by setting it to the controller state to RESETTING first. Signed-off-by: Keith Busch --- drivers/nvme/host/core.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index 95b74d020506..33b5729763c2 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -3742,15 +3742,14 @@ static void nvme_fw_act_work(struct work_struct *work) if (time_after(jiffies, fw_act_timeout)) { dev_warn(ctrl->device, "Fw activation timeout, reset controller\n"); - nvme_reset_ctrl(ctrl); - break; + nvme_reset_continue(ctrl); + return; } msleep(100); } - if (ctrl->state != NVME_CTRL_LIVE) + if (!nvme_change_ctrl_state(ctrl, NVME_CTRL_LIVE)) return; - nvme_start_queues(ctrl); /* read FW slot information to clear the AER */ nvme_get_fw_slot_info(ctrl); @@ -3768,7 +3767,8 @@ static void nvme_handle_aen_notice(struct nvme_ctrl *ctrl, u32 result) nvme_queue_scan(ctrl); break; case NVME_AER_NOTICE_FW_ACT_STARTING: - queue_work(nvme_wq, &ctrl->fw_act_work); + if (nvme_change_ctrl_state(ctrl, NVME_CTRL_RESETTING)) + queue_work(nvme_wq, &ctrl->fw_act_work); break; #ifdef CONFIG_NVME_MULTIPATH case NVME_AER_NOTICE_ANA: -- 2.21.0 _______________________________________________ Linux-nvme mailing list Linux-nvme@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-nvme