Messages in this thread | | | Date | Tue, 7 Jun 2011 10:55:08 +0200 | From | David Jander <> | Subject | Re: Why does handle_simple_irq() require IRQ's to be disabled? |
| |
Dear Thomas,
On Tue, 7 Jun 2011 10:26:26 +0200 (CEST) Thomas Gleixner <tglx@linutronix.de> wrote:
> On Tue, 7 Jun 2011, David Jander wrote: > > On Mon, 6 Jun 2011 18:18:41 +0200 (CEST) > > Thomas Gleixner <tglx@linutronix.de> wrote: > > > handle_nested_irq() is your friend. > > > > Thanks! This worked without disabling IRQ's. > > One last question, though: > > > > I set up the handler using irq_set_chip_and_handler(irq, ..., > > handle_simple_irq); > > From the interrupt thread, I call handle_nested_irq(). Is it OK, that in > > this case, the defined handler function (handle_simple_irq) is not used? > > Does this still make sense? Wouldn't calling just irq_set_chip() be enough > > here (it seems to work correctly)? > > It should be enough. Though you should mark the demuxed interrupts > with irq_set_nested_thread(irqnr, true). That avoids that you create > extra threads for the demuxed interrupts which are never used.
Cool! Now the disturbingly big list of kernel threads is gone :-)
Thanks a lot!
-- David Jander Protonic Holland.
| |