Re: [RFC PATCH] irqchip/sifive-plic: Fix getting wrong chip_data when interrupt is hierarchy

From: Palmer Dabbelt
Date: Thu Nov 05 2020 - 21:03:03 EST


On Sun, 01 Nov 2020 08:52:06 PST (-0800), tglx@xxxxxxxxxxxxx wrote:
On Sun, Nov 01 2020 at 12:10, Marc Zyngier wrote:

On Thu, 29 Oct 2020 10:37:38 +0800, Greentime Hu wrote:
This oops is caused by a wrong chip_data and it is because plic_irq_unmask
uses irq_get_chip_data(irq_data->irq) to get the chip_data. However it may
get another irq_data with the same irq_data->irq if it is hierarchy.

In this case, it will get irq_data of sifive_gpio_irqchip instead of
plic_chip so that it will get a wrong chip_data and then the wrong lmask
of it to cause this oops.

[...]

Applied to irq/irqchip-next, thanks!

That should go into urgent, the offending commit is in Linus tree already

I agree. I'm assuming that's for Marc, but LMK if you guys want me to take it.

Acked-by: Palmer Dabbelt <palmerdabbelt@xxxxxxxxxx>

Thanks!