# git rev-parse -q --verify a66de5283e16602b74658289360505ceeb308c90^{commit} a66de5283e16602b74658289360505ceeb308c90 already have revision, skipping fetch # git checkout -q -f -B kisskb a66de5283e16602b74658289360505ceeb308c90 # git clean -qxdf # < git log -1 # commit a66de5283e16602b74658289360505ceeb308c90 # Author: Michael Ellerman # Date: Wed Sep 7 09:37:17 2022 +1000 # # powerpc/pseries: Fix plpks crash on non-pseries # # As reported[1] by Nathan, the recently added plpks driver will crash if # it's built into the kernel and booted on a non-pseries machine, eg # powernv: # # kernel BUG at arch/powerpc/kernel/syscall.c:39! # Oops: Exception in kernel mode, sig: 5 [#1] # LE PAGE_SIZE=64K MMU=Radix SMP NR_CPUS=2048 NUMA PowerNV # ... # NIP system_call_exception+0x90/0x3d0 # LR system_call_common+0xec/0x250 # Call Trace: # 0xc0000000035c3e10 (unreliable) # system_call_common+0xec/0x250 # --- interrupt: c00 at plpar_hcall+0x38/0x60 # NIP: c0000000000e4300 LR: c00000000202945c CTR: 0000000000000000 # REGS: c0000000035c3e80 TRAP: 0c00 Not tainted (6.0.0-rc4) # MSR: 9000000002009033 CR: 28000284 XER: 00000000 # ... # NIP plpar_hcall+0x38/0x60 # LR pseries_plpks_init+0x64/0x23c # --- interrupt: c00 # # On powernv Linux is the hypervisor, so a hypercall just ends up going to # the syscall path, which BUGs if the syscall (hypercall) didn't come from # userspace. # # The fix is simply to not probe the plpks driver on non-pseries machines. # # [1] https://lore.kernel.org/linuxppc-dev/Yxe06fbq18Wv9y3W@dev-arch.thelio-3990X/ # # Fixes: 2454a7af0f2a ("powerpc/pseries: define driver for Platform KeyStore") # Reported-by: Nathan Chancellor # Signed-off-by: Michael Ellerman # Tested-by: Dan Horák # Reviewed-by: Dan Horák # Tested-by: Nathan Chancellor # Link: https://lore.kernel.org/r/20220907065038.1604504-1-mpe@ellerman.id.au # < /opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld --version # < git log --format=%s --max-count=1 a66de5283e16602b74658289360505ceeb308c90 # < make -s -j 120 ARCH=powerpc O=/kisskb/build/powerpc-fixes_ppc64_defconfig+NO_ALTIVEC_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- ppc64_defconfig # Added to kconfig CONFIG_ALTIVEC=n # Added to kconfig CONFIG_PPC_TRANSACTIONAL_MEM=n # < make -s -j 120 ARCH=powerpc O=/kisskb/build/powerpc-fixes_ppc64_defconfig+NO_ALTIVEC_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 120 ARCH=powerpc O=/kisskb/build/powerpc-fixes_ppc64_defconfig+NO_ALTIVEC_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig # make -s -j 120 ARCH=powerpc O=/kisskb/build/powerpc-fixes_ppc64_defconfig+NO_ALTIVEC_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- Completed OK # rm -rf /kisskb/build/powerpc-fixes_ppc64_defconfig+NO_ALTIVEC_powerpc-gcc5 # Build took: 0:02:30.613043