Received: by 2002:a17:90a:9307:0:0:0:0 with SMTP id p7csp3949387pjo; Tue, 3 Mar 2020 09:57:47 -0800 (PST) X-Google-Smtp-Source: ADFU+vuFPfMADpN13aMYsroaxHtfV/5uWoqhMC4z5v602xGdbL/nAQQ1Yf61qn1BUqHgqnemxJge X-Received: by 2002:aca:2114:: with SMTP id 20mr3315626oiz.9.1583258267062; Tue, 03 Mar 2020 09:57:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1583258267; cv=none; d=google.com; s=arc-20160816; b=rHsxllvbOETmKWhzO/d0gZ2k26aMKzehtOan8ZZiUuBl9fTkBllkJzNDg+8/GzFkM9 HtOv1XF/hBiw9d+kAWOrH3Ev9syyRl7J9H3qE6QLN+nO1ZsOmQDfay/AO1mGnVDMwtjd YZ9J0LApUyqRP4AnUK2dVwidHZgf+ny0P4C+K/3/lA4iur1z52zNU+jbv65hyhxofGaF hWR+YaTPNaS0lQar+RmVM7EPfeob8pmYGYuYvkxTMJphKuXZfzyMVTrp7xqVA7zeSwhy t7lx4In0UV3u/TDJstTslNWNZeIhuQJ2a/3qAvZ41OVWBbL16l9jerEdsQE9PVB4+ddZ 6wAw== 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=VgWlcmt38T5oW0E5BfO8JqfFY00wCKAlsrhabvS/UTs=; b=oLqG7QuMKf9cTX210xHcvXpX1bSRUw2yDv1pgNxgF/ANqn91Yri8YXsaW7IWZpfJBf +ihxOiGLSJQluQSk+zK0yCj/iEkrlghovWDySDUmGP7hGjB/2fvjv1S/y533qOMxwDQh 9NIEAE/3QmsyvrlPDvtsAju9PSnCD6qKnjEEhEEj00n/hon0yZeS1T9sRySkCYzlc8TP b6QGvHMonpYQaC+r3ajuxVPJrdFt8wLziBudAn1p2RUipptrXzr5YJM7oYfH/hvX+1bg luSjZso2VWz/lWeTOp4GnK2kevjB0AW4zfLifwHdN6S+xBj2GvqLIbsfTQSRIor0fsgT F6cg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=WfeIO7hj; 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 z18si8243331oid.82.2020.03.03.09.57.35; Tue, 03 Mar 2020 09:57:47 -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=WfeIO7hj; 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 S1732897AbgCCR40 (ORCPT + 99 others); Tue, 3 Mar 2020 12:56:26 -0500 Received: from mail.kernel.org ([198.145.29.99]:38566 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732863AbgCCR4Y (ORCPT ); Tue, 3 Mar 2020 12:56:24 -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 C2DDA20656; Tue, 3 Mar 2020 17:56:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1583258184; bh=17gVuyQ1l3tn5XxQiYJeWbGZ1+R3HWDG6NBZT0iJcxg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WfeIO7hj3gm3jN4E5I84Ufru1xbYH6/nOtxDuWgdG97yK6LFkaXQePi5AKXL421GJ GDs5IgDJ2POaljJEc5GZTHP1PLhZHTN2bCEbdbA6lm0rbHkHWwB2+VNKtZjaxTVwwI O3qg0pTg3wA8ij2ODl563xzy+PMvMLlPBaT4Rbss= 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.4 104/152] nvme-pci: Hold cq_poll_lock while completing CQEs Date: Tue, 3 Mar 2020 18:43:22 +0100 Message-Id: <20200303174314.420132252@linuxfoundation.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200303174302.523080016@linuxfoundation.org> References: <20200303174302.523080016@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 @@ -1084,9 +1084,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; }