]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
powerpc/64s/interrupt: Fix lost interrupts when returning to soft-masked context
authorNicholas Piggin <npiggin@gmail.com>
Thu, 13 Oct 2022 06:44:18 +0000 (16:44 +1000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 21 Oct 2022 10:39:28 +0000 (12:39 +0200)
commitbb3ff5c52b2793b40b986af8b3c2b74ebd0f8b44
tree42a5c64f6eb47147248a67c17ccfdf17be7d17b6
parent9974d220c5073d035b5469d1d8ecd71da86c7afd
powerpc/64s/interrupt: Fix lost interrupts when returning to soft-masked context

commit a4cb3651a174366cc85a677da9e3681fbe97fdae upstream.

It's possible for an interrupt returning to an irqs-disabled context to
lose a pending soft-masked irq because it branches to part of the exit
code for irqs-enabled contexts, which is meant to clear only the
PACA_IRQS_HARD_DIS flag from PACAIRQHAPPENED by zeroing the byte. This
just looks like a simple thinko from a recent commit (if there was no
hard mask pending, there would be no reason to clear it anyway).

This also adds comment to the code that actually does need to clear the
flag.

Fixes: e485f6c751e0a ("powerpc/64/interrupt: Fix return to masked context after hard-mask irq becomes pending")
Reported-by: Sachin Sant <sachinp@linux.ibm.com>
Reported-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20221013064418.1311104-1-npiggin@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/powerpc/kernel/interrupt_64.S