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
1 changed files with 7 additions and 1 deletions
|
@ -206,8 +206,14 @@ irqreturn_t bfin_gptmr0_interrupt(int irq, void *dev_id)
|
||||||
{
|
{
|
||||||
struct clock_event_device *evt = dev_id;
|
struct clock_event_device *evt = dev_id;
|
||||||
smp_mb();
|
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();
|
bfin_gptmr0_ack();
|
||||||
|
evt->event_handler(evt);
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue