forked from Minki/linux
Blackfin: time-ts: ack gptimer sooner to avoid missing short ints
If the period of a gptimer is fairly low, we might miss an interrupt by acking it too late (we end up acking the new int as well). Reported-by: Isabelle Leonardi <i.leonardi@detracom.fr> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
parent
ce24ee468a
commit
0bf02ce605
@ -206,8 +206,14 @@ irqreturn_t bfin_gptmr0_interrupt(int irq, void *dev_id)
|
||||
{
|
||||
struct clock_event_device *evt = dev_id;
|
||||
smp_mb();
|
||||
evt->event_handler(evt);
|
||||
/*
|
||||
* We want to ACK before we handle so that we can handle smaller timer
|
||||
* intervals. This way if the timer expires again while we're handling
|
||||
* things, we're more likely to see that 2nd int rather than swallowing
|
||||
* it by ACKing the int at the end of this handler.
|
||||
*/
|
||||
bfin_gptmr0_ack();
|
||||
evt->event_handler(evt);
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user