Re: [PATCH] genirq: Correctly configure the trigger on chained interrupts

From: Linus Walleij
Date: Thu Aug 11 2016 - 17:09:26 EST


On Thu, Aug 11, 2016 at 5:55 PM, Marc Zyngier <marc.zyngier@xxxxxxx> wrote:

> Commit 1e2a7d78499e ("irqdomain: Don't set type when mapping an IRQ")
> moved the trigger configuration call from the irqdomain mapping to
> the interrupt being actually requested.
>
> This patch failed to handle the case where we configure a chained
> interrupt, which doesn't get requested through the usual path.
>
> In order to solve this, let's call __irq_set_trigger just before
> starting the cascade interrupt. Special care must be taken to
> make the flow handler stick, as the .irq_set_type method could
> have reset it (it doesn't know we're dealing with a chained
> interrupt).
>
> Based on an initial patch by Jon Hunter.
>
> Fixes: 1e2a7d78499e ("irqdomain: Don't set type when mapping an IRQ")
> Reported-by: John Stultz <john.stultz@xxxxxxxxxx>
> Reported-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
> Tested-by: John Stultz <john.stultz@xxxxxxxxxx>
> Acked-by: Jon Hunter <jonathanh@xxxxxxxxxx>
> Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>

Tested-by: Linus Walleij <linus.walleij@xxxxxxxxxx>

Yours,
Linus Walleij