diff options
author | Bart Van Assche <bart.vanassche@sandisk.com> | 2015-12-31 09:56:03 +0100 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2016-01-19 21:26:55 +0100 |
commit | 2ee177e945e000a40b520ea667fd4fbe7a61634e (patch) | |
tree | 45b22ef706e4de4efaad4de568d623f4cf6be25a /lib | |
parent | IB/core: Fix dereference before check (diff) | |
download | linux-2ee177e945e000a40b520ea667fd4fbe7a61634e.tar.xz 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')
-rw-r--r-- | lib/irq_poll.c | 2 |
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); |