Messages in this thread | | | Date | Wed, 28 Nov 2007 15:43:49 +0100 | From | "Remy Bohmer" <> | Subject | Re: [PATCH PREEMPT_RT]: On AT91 ARM: GPIO Interrupt handling can/will stall forever |
| |
Hello Kevin,
Just copied your mail to the list, maybe your solution is also worth looking at.
Remy
> I had a similar issue when using the chained GPIO interrupts on OMAP > under PREEMPT_RT. > > I believe the chained handler itself is supposed to be doing the > ack/unmask instead of the simple_handler. > > However, currently there is no way for the chained handler to know > when the threaded handler has acutally run. So the way I fixed this > was to have the simple handler call the chip->end hook so that the > chained handler could do the ack/unmask after the threaded handler has > actually run. > > I've been using this against the -rt patch since 2.6.21, and submitted > and RFC a while back, but got no comments. > > This patch is against 2.6.24-rc2-rt1. > > Signed-off-by: Kevin Hilman <khilman@mvista.com> > > diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c > index b35d209..2f9e09e 100644 > --- a/kernel/irq/manage.c > +++ b/kernel/irq/manage.c > @@ -661,6 +661,8 @@ static void thread_simple_irq(irq_desc_t *desc) > note_interrupt(irq, desc, action_ret); > } > desc->status &= ~IRQ_INPROGRESS; > + if (desc->chip->end) > + desc->chip->end(irq); > } > > /* > > > > - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |