summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>2021-02-23 12:47:40 -0800
committerChristoph Hellwig <hch@lst.de>2021-04-02 18:48:24 +0200
commite9c78c23359fad8c58fa5654efe7320c8128f4af (patch)
tree0f80a27c31a502757d1e2871c884fa0639953988 /drivers
parent80755855f808c27c7154937667436f30e47bc820 (diff)
downloadlinux-stable-e9c78c23359fad8c58fa5654efe7320c8128f4af.tar.gz
linux-stable-e9c78c23359fad8c58fa5654efe7320c8128f4af.tar.bz2
linux-stable-e9c78c23359fad8c58fa5654efe7320c8128f4af.zip
nvme-pci: remove the barriers in nvme_irq()
The barriers were added to the nvme_irq() in commit 3a7afd8ee42a ("nvme-pci: remove the CQ lock for interrupt driven queues") to prevent compiler from doing memory optimization for the variabes that were protected previously by spinlock in nvme_irq() at completion queue processing and with queue head check condition. The variable nvmeq->last_cq_head from those checks was removed in the commit f6c4d97b0d82 ("nvme/pci: Remove last_cq_head") that was not allwing poll queues from mistakenly triggering the spurious interrupt detection. Remove the barriers which were protecting the updates to the variables. Reported-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com> Reviewed-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/nvme/host/pci.c6
1 files changed, 0 insertions, 6 deletions
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index 7249ae74f71f..2d5496c52afd 100644
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme/host/pci.c
@@ -1062,14 +1062,8 @@ static irqreturn_t nvme_irq(int irq, void *data)
struct nvme_queue *nvmeq = data;
irqreturn_t ret = IRQ_NONE;
- /*
- * The rmb/wmb pair ensures we see all updates from a previous run of
- * the irq handler, even if that was on another CPU.
- */
- rmb();
if (nvme_process_cq(nvmeq))
ret = IRQ_HANDLED;
- wmb();
return ret;
}