summaryrefslogtreecommitdiffstats
path: root/lib/irq_poll.c
diff options
context:
space:
mode:
authorBart Van Assche <bart.vanassche@sandisk.com>2015-12-31 09:56:03 +0100
committerDoug Ledford <dledford@redhat.com>2016-01-19 15:26:55 -0500
commit2ee177e945e000a40b520ea667fd4fbe7a61634e (patch)
tree45b22ef706e4de4efaad4de568d623f4cf6be25a /lib/irq_poll.c
parent9506902b7be2d8ccc235c14ccaec7f07b2c7d520 (diff)
downloadlinux-2ee177e945e000a40b520ea667fd4fbe7a61634e.tar.gz
linux-2ee177e945e000a40b520ea667fd4fbe7a61634e.tar.bz2
linux-2ee177e945e000a40b520ea667fd4fbe7a61634e.zip
irq_poll: Fix irq_poll_sched()
The IRQ_POLL_F_SCHED bit is set as long as polling is ongoing. This means that irq_poll_sched() must proceed if this bit has not yet been set. Fixes: commit ea51190c0315 ("irq_poll: fold irq_poll_sched_prep into irq_poll_sched"). Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Sagi Grimberg <sagig@mellanox.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'lib/irq_poll.c')
-rw-r--r--lib/irq_poll.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/irq_poll.c b/lib/irq_poll.c
index 2836620e889f..836f7db4e548 100644
--- a/lib/irq_poll.c
+++ b/lib/irq_poll.c
@@ -29,7 +29,7 @@ void irq_poll_sched(struct irq_poll *iop)
if (test_bit(IRQ_POLL_F_DISABLE, &iop->state))
return;
- if (!test_and_set_bit(IRQ_POLL_F_SCHED, &iop->state))
+ if (test_and_set_bit(IRQ_POLL_F_SCHED, &iop->state))
return;
local_irq_save(flags);