linux-stable/arch
Nicholas Piggin 43f49952df powerpc/64s/interrupt: Fix lost interrupts when returning to soft-masked context
commit a4cb3651a1 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: e485f6c751 ("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>
2022-10-24 09:58:30 +02:00
..
alpha Cleanups (and one fix) around struct mount handling. 2022-06-04 19:00:05 -07:00
arc This set of changes updates init and user mode helper tasks to be 2022-06-03 16:03:05 -07:00
arm ARM: 9242/1: kasan: Only map modules if CONFIG_KASAN_VMALLOC=n 2022-10-24 09:58:23 +02:00
arm64 arm64: dts: imx8mp: Add snps,gfladj-refclk-lpm-sel quirk to USB nodes 2022-10-24 09:58:27 +02:00
csky csky/kprobe: reclaim insn_slot on kprobe unregistration 2022-08-25 11:45:46 +02:00
hexagon
ia64 ia64: export memory_add_physaddr_to_nid to fix cxl build error 2022-10-24 09:57:25 +02:00
loongarch LoongArch: Fix arch_remove_memory() undefined build error 2022-09-20 12:43:49 +02:00
m68k m68k: coldfire/device.c: protect FLEXCAN blocks 2022-08-25 11:45:15 +02:00
microblaze This set of changes updates init and user mode helper tasks to be 2022-06-03 16:03:05 -07:00
mips MIPS: BCM47XX: Cast memcmp() of function to (void *) 2022-10-24 09:58:09 +02:00
nios2 nios2: add force_successful_syscall_return() 2022-08-25 11:45:27 +02:00
openrisc openrisc: io: Define iounmap argument as volatile 2022-08-25 11:45:46 +02:00
parisc parisc: Fix userspace graphics card breakage due to pgtable special bit 2022-10-24 09:56:45 +02:00
powerpc powerpc/64s/interrupt: Fix lost interrupts when returning to soft-masked context 2022-10-24 09:58:30 +02:00
riscv riscv: Pass -mno-relax only on lld < 15.0.0 2022-10-24 09:56:46 +02:00
s390 KVM: s390: Pass initialized arg even if unused 2022-10-12 09:51:24 +02:00
sh sh: machvec: Use char[] for section boundaries 2022-10-24 09:57:02 +02:00
sparc sparc: Unbreak the build 2022-10-12 09:51:23 +02:00
um UM: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK 2022-10-24 09:56:46 +02:00
x86 bpf: use bpf_prog_pack for bpf_dispatcher 2022-10-24 09:58:15 +02:00
xtensa xtensa: iss: fix handling error cases in iss_net_configure() 2022-08-17 15:15:32 +02:00
.gitignore
Kconfig arch: make TRACE_IRQFLAGS_NMI_SUPPORT generic 2022-08-17 15:13:59 +02:00