[PATCH V6] irqchip/sifive-plic: Fixup EOI failed when masked

Marc Zyngier maz at kernel.org
Thu Nov 4 07:57:22 PDT 2021


On Thu, 04 Nov 2021 14:40:42 +0000,
Anup Patel <anup at brainfault.org> wrote:
> 
> On Mon, Nov 1, 2021 at 6:47 PM <guoren at kernel.org> wrote:
> >
> > From: Guo Ren <guoren at linux.alibaba.com>
> >
> > When using "devm_request_threaded_irq(,,,,IRQF_ONESHOT,,)" in the driver,
> > only the first interrupt could be handled, and continue irq is blocked by
> > hw. Because the riscv plic couldn't complete masked irq source which has
> > been disabled in enable register. The bug was firstly reported in [1].
> >
> > Here is the description of Interrupt Completion in PLIC spec [2]:
> >
> > The PLIC signals it has completed executing an interrupt handler by
> > writing the interrupt ID it received from the claim to the claim/complete
> > register. The PLIC does not check whether the completion ID is the same
> > as the last claim ID for that target. If the completion ID does not match
> > an interrupt source that is currently enabled for the target, the
> >                          ^^ ^^^^^^^^^ ^^^^^^^
> > completion is silently ignored.
> >
> > [1] http://lists.infradead.org/pipermail/linux-riscv/2021-July/007441.html
> > [2] https://github.com/riscv/riscv-plic-spec/blob/8bc15a35d07c9edf7b5d23fec9728302595ffc4d/riscv-plic.adoc
> >
> > Reported-by: Vincent Pelletier <plr.vincent at gmail.com>
> > Signed-off-by: Guo Ren <guoren at linux.alibaba.com>
> > Cc: Anup Patel <anup at brainfault.org>
> > Cc: Thomas Gleixner <tglx at linutronix.de>
> > Cc: Marc Zyngier <maz at kernel.org>
> > Cc: Palmer Dabbelt <palmer at dabbelt.com>
> > Cc: Atish Patra <atish.patra at wdc.com>
> > Cc: Nikita Shubin <nikita.shubin at maquefel.me>
> > Cc: incent Pelletier <plr.vincent at gmail.com>
> 
> Please include a Fixes: tag
> 
> Also, I see that you have dropped the DT bindings patch. We still
> need separate compatible string for T-HEAD PLIC because OpenSBI
> will use it for other work-arounds.
> 
> I suggest to include to more patches in this series:
> 1) Your latest T-HEAD PLIC DT bindings patch
> 2) Separate patch to use T-HEAD PLIC compatible in PLIC driver

No, please keep things separate. The PLIC is broken *today*, and I
want to take a patch for -rc1. The rest (compatible and such) is a new
feature and can wait until 5.17.

	M.

-- 
Without deviation from the norm, progress is not possible.



More information about the linux-riscv mailing list