Received: by 2002:a25:c205:0:0:0:0:0 with SMTP id s5csp3652963ybf; Tue, 3 Mar 2020 09:50:55 -0800 (PST) X-Google-Smtp-Source: ADFU+vs6MGrKrxCKHZw/Y8HJ01yIPEF5ZNm5Y5jWmjkr8evvu+fXtrTh0qvmd1O2/cOscsuhCtb4 X-Received: by 2002:a9d:7dc9:: with SMTP id k9mr4320036otn.321.1583257855343; Tue, 03 Mar 2020 09:50:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1583257855; cv=none; d=google.com; s=arc-20160816; b=hLpxw6IG2riel5wO4iBldT/LYvKsFL/fWuCAh5L3UGdJTWuFHg8HMwrUBfoNuUcJZj 2CRsuwa0AniKOnIPmVNkpyGvavh5+ClPzLnFRHupXh4/1wUzkj1peBfDfe6qNwiLRKX3 TTCF8YX1Z0NTn1775a/MUohxgK+QMgx9BOyffPt9BnNaHYh0gxuYYOIp3/yAgNiroyJi BSmlhQxja2sjtBDtClgBxekpmG/+bx1gII/pC7NLJRhkCfQuDMHq1gU0TDMfI99iXJy6 ZSOHJswhtHB7kPm+voFN4Fd/d/fKwYxaxuG1PyBjF4F/WAjxoqwpgyA0tyqysU4M8LWs JqHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=GMgLZJ1Ayi0gE4nwqY5XF91/OQ5zyYO56hkCZ/Bg/t0=; b=m4CJDfQW99wmxPIFbpP2KR0du8tqT833cmfF32bwIjwnvHCtShJw7PUzsaGSrTLBVY j5nOcT1EdL2Z3jDZPCE2yHbIHaX/kmVI0ERLFdSXor/oMVhdJwOqsOVq50KiaQrENQ91 CsT2AGnityUNdlLMWx7Z8sSutTppGxcXfooPDZX0pabLV4xQcxFOTyidEOrlbRj95MqC TK20MkTYg+L8eKIXhkl6ai+rDGLOMANslFnSAhPXLbH6W/8sh82j9hDyzxy9kgNYW1V+ 3Jk+gBLafS2MzHsxi4voo/Bbcfr/ncWww3906U4YpAb8II+X07Q5XHCcrzFN8t127qN/ uzHw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ks6IA1mp; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s8si7991764oij.275.2020.03.03.09.50.43; Tue, 03 Mar 2020 09:50:55 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ks6IA1mp; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731802AbgCCRtf (ORCPT + 99 others); Tue, 3 Mar 2020 12:49:35 -0500 Received: from mail.kernel.org ([198.145.29.99]:56882 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731796AbgCCRte (ORCPT ); Tue, 3 Mar 2020 12:49:34 -0500 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 E49D020CC7; Tue, 3 Mar 2020 17:49:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1583257773; bh=LmL5IQBeypXgesntFYQKh5sWIvUcHxZNKZSbikfsc0I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ks6IA1mpWXBowY17CfGxNGGnT6Gb0w96XClH6xlR7ZDQ2T8FBLxWQHnWrBpFx3ZPU 9xb1nvQVF9xXmbl4h9W5Afe7FXup99B/tMM4Vw5KtNyC66o5Ya9kFndtzvnrBb3oiC lZlAPW2owCtiiNeQIDxNsFHjSCqzMNpniB0212U0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Bijan Mottahedeh , Sagi Grimberg , Jens Axboe , Keith Busch Subject: [PATCH 5.5 123/176] nvme-pci: Hold cq_poll_lock while completing CQEs Date: Tue, 3 Mar 2020 18:43:07 +0100 Message-Id: <20200303174319.029189064@linuxfoundation.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200303174304.593872177@linuxfoundation.org> References: <20200303174304.593872177@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 From: Bijan Mottahedeh commit 9515743bfb39c61aaf3d4f3219a645c8d1fe9a0e upstream. Completions need to consumed in the same order the controller submitted them, otherwise future completion entries may overwrite ones we haven't handled yet. Hold the nvme queue's poll lock while completing new CQEs to prevent another thread from freeing command tags for reuse out-of-order. Fixes: dabcefab45d3 ("nvme: provide optimized poll function for separate poll queues") Signed-off-by: Bijan Mottahedeh Reviewed-by: Sagi Grimberg Reviewed-by: Jens Axboe Signed-off-by: Keith Busch Signed-off-by: Greg Kroah-Hartman --- drivers/nvme/host/pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -1078,9 +1078,9 @@ static int nvme_poll(struct blk_mq_hw_ct spin_lock(&nvmeq->cq_poll_lock); found = nvme_process_cq(nvmeq, &start, &end, -1); + nvme_complete_cqes(nvmeq, start, end); spin_unlock(&nvmeq->cq_poll_lock); - nvme_complete_cqes(nvmeq, start, end); return found; }