Re: chained irq handler problems

From: Manuel Lauss
Date: Tue Jun 14 2011 - 07:17:15 EST


On Tue, Jun 14, 2011 at 12:05 PM, Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
> On Sun, 12 Jun 2011, Manuel Lauss wrote:
>> My question is: what are the differences in interrupt handling between the
>> "traditional" handler and the cascade handler case?
>> I also noticed that the cascade irq (the muxer irq line to the cpu) is not
>> disabled when the interrupt is serviced. Is this by design?
>
> The normal handler, which should btw never ever be setup from an
> startup callback, deals with the irq chip functions (mask, ack, eoi)
> which are assigned to that irq line. The chained handler is called
> directly from the low level entry code and bypasses the standard
> handling mechanism. That means no chip functions are called. If your
> irq chip of the primary line requires e.g. an ack, then this needs to
> be done explicitely in the chained handler itself.

I added calls to disable/enable the cascade around the call
to generic_handle_irq() and now it works (no ack necessary since
the cascade is set up as level-triggered).

Thanks!
Manuel Lauss
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/