android_kernel_samsung_sm8650/arch/powerpc
Nicholas Piggin aee101d7b9 powerpc/64s: Mask SRR0 before checking against the masked NIP
Commit 314f6c23dd ("powerpc/64s: Mask NIP before checking against
SRR0") masked off the low 2 bits of the NIP value in the interrupt
stack frame in case they are non-zero and mis-compare against a SRR0
register value of a CPU which always reads back 0 from the 2 low bits
which are reserved.

This now causes the opposite problem that an implementation which does
implement those bits in SRR0 will mis-compare against the masked NIP
value in which they have been cleared. QEMU is one such implementation,
and this is allowed by the architecture.

This can be triggered by sigfuz by setting low bits of PT_NIP in the
signal context.

Fix this for now by masking the SRR0 bits as well. Cleaner is probably
to sanitise these values before putting them in registers or stack, but
this is the quick and backportable fix.

Fixes: 314f6c23dd ("powerpc/64s: Mask NIP before checking against SRR0")
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220117134403.2995059-1-npiggin@gmail.com
2022-01-18 10:25:18 +11:00
..
boot powerpc updates for 5.17 2022-01-14 15:17:26 +01:00
configs powerpc updates for 5.17 2022-01-14 15:17:26 +01:00
crypto powerpc updates for 5.17 2022-01-14 15:17:26 +01:00
include powerpc/32s: Fix kasan_init_region() for KASAN 2022-01-16 20:51:05 +11:00
kernel powerpc/64s: Mask SRR0 before checking against the masked NIP 2022-01-18 10:25:18 +11:00
kexec powerpc/kernel: Add __init attribute to eligible functions 2021-12-23 22:33:10 +11:00
kvm Merge branch 'topic/ppc-kvm' into next 2021-12-15 11:29:53 +11:00
lib powerpc/32: Fix boot failure with GCC latent entropy plugin 2021-12-23 22:36:58 +11:00
math-emu powerpc/64s: avoid reloading (H)SRR registers if they are still valid 2021-06-25 00:06:55 +10:00
mm powerpc/32s: Fix kasan_init_region() for KASAN 2022-01-16 20:51:05 +11:00
net powerpc64/bpf: Limit 'ldbrx' to processors compliant with ISA v2.06 2022-01-15 12:21:25 +11:00
perf powerpc/perf: Only define power_pmu_wants_prompt_pmi() for CONFIG_PPC64 2022-01-17 15:04:13 +11:00
platforms powerpc updates for 5.17 2022-01-14 15:17:26 +01:00
purgatory powerpc/kexec: Don't use .machine ppc64 in trampoline_64.S 2021-04-08 21:17:43 +10:00
sysdev powerpc updates for 5.17 2022-01-14 15:17:26 +01:00
tools powerpc/head_check: Fix shellcheck errors 2021-08-17 22:52:02 +10:00
xmon powerpc/xmon: Dump XIVE information for online-only processors. 2022-01-06 21:47:00 +11:00
Kbuild kbuild: use more subdir- for visiting subdirectories while cleaning 2021-10-24 13:49:46 +09:00
Kconfig powerpc/64s: Move hash MMU support code under CONFIG_PPC_64S_HASH_MMU 2021-12-09 22:41:13 +11:00
Kconfig.debug powerpc/ptdump: Convert powerpc to GENERIC_PTDUMP 2021-08-25 13:35:48 +10:00
Makefile powerpc: check for support for -Wa,-m{power4,any} 2021-12-23 22:35:12 +11:00
Makefile.postlink powerpc: unrel_branch_check.sh: use nm to find symbol value 2020-09-02 11:00:22 +10:00