On Thu, Jun 30, 2011 at 12:51 PM, Felipe Balbi <balbi@xxxxxx> wrote: > threads from twl4030's children will be called > nested in the context of the demultiplexing > handler on twl4030-irq.c. > > Signed-off-by: Felipe Balbi <balbi@xxxxxx> > --- > drivers/mfd/twl4030-irq.c | 11 ++++++----- > 1 files changed, 6 insertions(+), 5 deletions(-) > > diff --git a/drivers/mfd/twl4030-irq.c b/drivers/mfd/twl4030-irq.c > index 1b9ab2f..ff16e9c 100644 > --- a/drivers/mfd/twl4030-irq.c > +++ b/drivers/mfd/twl4030-irq.c > @@ -304,7 +304,7 @@ static irqreturn_t handle_twl4030_pih(int irq, void *devid) > pih_isr; > pih_isr >>= 1, module_irq++) { > if (pih_isr & 0x1) > - generic_handle_irq(module_irq); > + handle_nested_irq(module_irq); But handle_nested_irq calls action->thread_fn, which is NULL for the sih handlers that are set-up below; handle_twl4030_sih will never be called. > } > > return IRQ_HANDLED; > @@ -596,9 +596,7 @@ static void handle_twl4030_sih(unsigned irq, struct irq_desc *desc) > int isr; > > /* reading ISR acks the IRQs, using clear-on-read mode */ > - local_irq_enable(); > isr = sih_read_isr(sih); > - local_irq_disable(); But handle_twl4030_sih is still not nested. Fortunately, Neil Brown already fixed the issues in this patch by making handle_twl4030_sih truly nested: http://article.gmane.org/gmane.linux.kernel/1220708 Cheers. -- Felipe Contreras -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html