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

From: Marc Zyngier
Date: Thu Nov 04 2021 - 10:57:27 EST


On Thu, 04 Nov 2021 14:40:42 +0000,
Anup Patel <anup@xxxxxxxxxxxxxx> wrote:
>
> On Mon, Nov 1, 2021 at 6:47 PM <guoren@xxxxxxxxxx> wrote:
> >
> > From: Guo Ren <guoren@xxxxxxxxxxxxxxxxx>
> >
> > 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@xxxxxxxxx>
> > Signed-off-by: Guo Ren <guoren@xxxxxxxxxxxxxxxxx>
> > Cc: Anup Patel <anup@xxxxxxxxxxxxxx>
> > Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> > Cc: Marc Zyngier <maz@xxxxxxxxxx>
> > Cc: Palmer Dabbelt <palmer@xxxxxxxxxxx>
> > Cc: Atish Patra <atish.patra@xxxxxxx>
> > Cc: Nikita Shubin <nikita.shubin@xxxxxxxxxxx>
> > Cc: incent Pelletier <plr.vincent@xxxxxxxxx>
>
> 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.