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=-8.9 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,T_DKIMWL_WL_HIGH,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 24C81C04AB1 for ; Thu, 9 May 2019 18:59:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id DCA6F20656 for ; Thu, 9 May 2019 18:59:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1557428344; bh=6Q79zQeNf9CSpfNvdjj2pS0D70glEimSyw9XP29LeJI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=nUoYTarqyDiQDB3DV75c+HCsm5kjnl/d/KxXQ4iGlfH1qnoTUpBjR1mhxU4F+y/Og Gga6ILSIH7rM0YezXOtgom1I/iYtzEcUms67lEATLTjii06QiOOEN/jEqLn+dyGEdT jccveH9skl29Zy2bQuxte6dqKXzzVSND5ESctJ4Q= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728765AbfEISwp (ORCPT ); Thu, 9 May 2019 14:52:45 -0400 Received: from mail.kernel.org ([198.145.29.99]:46768 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728733AbfEISwh (ORCPT ); Thu, 9 May 2019 14:52:37 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (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 B6347217D7; Thu, 9 May 2019 18:52:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1557427956; bh=6Q79zQeNf9CSpfNvdjj2pS0D70glEimSyw9XP29LeJI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=llSooAlH1EAYtYhWY/3afR0ihe0s6dcGeEjsGJRgyFwJd1pBYxfIS5L/ATT+tmtqv j6N85yIoEUD+Z358HwhAsrZCnyexm936w0Ty6q6DYKmcFIKFv4OM0dWcEhGNTsjkMx xvjIeHEtI1/LDUsAbW8KKCWBPx1YoElfB7DY/dkA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Sagi Grimberg , Bart Van Assche , James Smart , linux-nvme@lists.infradead.org, Keith Busch , Christoph Hellwig , Ming Lei , Jens Axboe , Sasha Levin Subject: [PATCH 5.0 66/95] nvme: cancel request synchronously Date: Thu, 9 May 2019 20:42:23 +0200 Message-Id: <20190509181314.082604502@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190509181309.180685671@linuxfoundation.org> References: <20190509181309.180685671@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [ Upstream commit eb3afb75b57c28599af0dfa03a99579d410749e9 ] nvme_cancel_request() is used in error handler, and it is always reliable to cancel request synchronously, and avoids possible race in which request may be completed after real hw queue is destroyed. One issue is reported by our customer on NVMe RDMA, in which freed ib queue pair may be used in nvme_rdma_complete_rq(). Cc: Sagi Grimberg Cc: Bart Van Assche Cc: James Smart Cc: linux-nvme@lists.infradead.org Reviewed-by: Keith Busch Reviewed-by: Christoph Hellwig Signed-off-by: Ming Lei Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin --- drivers/nvme/host/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index 6a9dd68c0f4fe..4c4413ad3ceb3 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -291,7 +291,7 @@ bool nvme_cancel_request(struct request *req, void *data, bool reserved) "Cancelling I/O %d", req->tag); nvme_req(req)->status = NVME_SC_ABORT_REQ; - blk_mq_complete_request(req); + blk_mq_complete_request_sync(req); return true; } EXPORT_SYMBOL_GPL(nvme_cancel_request); -- 2.20.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: gregkh@linuxfoundation.org (Greg Kroah-Hartman) Date: Thu, 9 May 2019 20:42:23 +0200 Subject: [PATCH 5.0 66/95] nvme: cancel request synchronously In-Reply-To: <20190509181309.180685671@linuxfoundation.org> References: <20190509181309.180685671@linuxfoundation.org> Message-ID: <20190509181314.082604502@linuxfoundation.org> [ Upstream commit eb3afb75b57c28599af0dfa03a99579d410749e9 ] nvme_cancel_request() is used in error handler, and it is always reliable to cancel request synchronously, and avoids possible race in which request may be completed after real hw queue is destroyed. One issue is reported by our customer on NVMe RDMA, in which freed ib queue pair may be used in nvme_rdma_complete_rq(). Cc: Sagi Grimberg Cc: Bart Van Assche Cc: James Smart Cc: linux-nvme at lists.infradead.org Reviewed-by: Keith Busch Reviewed-by: Christoph Hellwig Signed-off-by: Ming Lei Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin --- drivers/nvme/host/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index 6a9dd68c0f4fe..4c4413ad3ceb3 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -291,7 +291,7 @@ bool nvme_cancel_request(struct request *req, void *data, bool reserved) "Cancelling I/O %d", req->tag); nvme_req(req)->status = NVME_SC_ABORT_REQ; - blk_mq_complete_request(req); + blk_mq_complete_request_sync(req); return true; } EXPORT_SYMBOL_GPL(nvme_cancel_request); -- 2.20.1