From ba34628b349a0df601533548be623bdf73df21ef Mon Sep 17 00:00:00 2001 From: Xiaoguang Wang Date: Tue, 28 Jul 2020 13:50:19 +0800 Subject: [PATCH 1863/2944] alinux: nvme-pci: hold cq_lock while completing CQEs fix #29535320 In __nvme_poll(), nvme_complete_cqes() should also been protected by nvmeq->cq_lock. Fixes: 0d326c85dba5 ("nvme: provide optimized poll function for separate poll queues") Signed-off-by: Xiaoguang Wang Reviewed-by: Joseph Qi --- drivers/nvme/host/pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index 1c1cb2c..b469130 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -1090,9 +1090,9 @@ static int __nvme_poll(struct nvme_queue *nvmeq, unsigned int tag) spin_lock_irq(&nvmeq->cq_lock); found = nvme_process_cq(nvmeq, &start, &end, tag); + nvme_complete_cqes(nvmeq, start, end); spin_unlock_irq(&nvmeq->cq_lock); - nvme_complete_cqes(nvmeq, start, end); return found; } -- 1.8.3.1