[PATCH v5 20/23] powerpc/book3s64/hash/kuap: Enable kuap on hash
Michael Ellerman
mpe at ellerman.id.au
Sat Sep 12 21:54:10 AEST 2020
"Aneesh Kumar K.V" <aneesh.kumar at linux.ibm.com> writes:
> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar at linux.ibm.com>
> ---
> arch/powerpc/mm/book3s64/pkeys.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/mm/book3s64/pkeys.c b/arch/powerpc/mm/book3s64/pkeys.c
> index 391230f93da2..16ea0b2f0ea5 100644
> --- a/arch/powerpc/mm/book3s64/pkeys.c
> +++ b/arch/powerpc/mm/book3s64/pkeys.c
> @@ -257,7 +257,12 @@ void __init setup_kuep(bool disabled)
> #ifdef CONFIG_PPC_KUAP
> void __init setup_kuap(bool disabled)
> {
> - if (disabled || !early_radix_enabled())
> + if (disabled)
> + return;
> + /*
> + * On hash if PKEY feature is not enabled, disable KUAP too.
> + */
> + if (!early_radix_enabled() && !early_mmu_has_feature(MMU_FTR_PKEY))
> return;
>
> if (smp_processor_id() == boot_cpuid) {
I'm seeing userspace crashes, bisect points at this commit. But
obviously this is just the commit that enables the code.
It seems to be TM related, a lot of the TM selftests are failing with
seemingly random segfaults.
eg:
./tm-tmspr
test: tm_tmspr
tags: git_version:v5.9-rc2-146-g928c664a7f4e
!! child died by signal 11
failure: tm_tmspr
And this warning fires:
[ 308.825455] ------------[ cut here ]------------
[ 308.825485] WARNING: CPU: 5 PID: 105478 at arch/powerpc/include/asm/book3s/64/kup.h:287 syscall_exit_prepare+0x350/0x390
[ 308.825495] Modules linked in: iptable_mangle xt_MASQUERADE iptable_nat nf_nat xt_conntrack nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 ipt_REJECT nf_reject_ipv4 xt_tcpudp tun bridge stp llc ip6table_filter ip6_tables iptable_filter fuse kvm_hv kvm binfmt_misc squashfs mlx4_ib ib_uverbs dm_multipath scsi_dh_rdac scsi_dh_alua ib_core mlx4_en bnx2x lpfc mlx4_core crc_t10dif sr_mod crct10dif_generic cdrom vmx_crypto scsi_transport_fc sg mdio gf128mul crct10dif_vpmsum crct10dif_common powernv_rng crc32c_vpmsum rng_core leds_powernv powernv_op_panel led_class sunrpc ip_tables x_tables autofs4
[ 308.825596] CPU: 5 PID: 105478 Comm: tm-tmspr Tainted: P 5.9.0-rc2-00146-g928c664a7f4e #1
[ 308.825607] NIP: c000000000038640 LR: c00000000000ddcc CTR: c0000000003c32d0
[ 308.825616] REGS: c000001e41877b00 TRAP: 0700 Tainted: P (5.9.0-rc2-00146-g928c664a7f4e)
[ 308.825625] MSR: 900000010282b033 <SF,HV,VEC,VSX,EE,FP,ME,IR,DR,RI,LE,TM[E]> CR: 44004484 XER: 20000000
[ 308.825649] CFAR: c000000000038358 IRQMASK: 0
GPR00: c00000000000ddcc c000001e41877da0 c00000000143f000 0000000000000000
GPR04: c000001e41877e80 0000000000000000 00007ffec6ed0000 0000000000000008
GPR08: 0000000000000002 3cffffffffffffff fcffffffffffffff 00000000f5638000
GPR12: 0000000000004400 c0000007ffffa680 0000000000000000 00007ffff7ff0000
GPR16: 00007ffff7f54410 00007ffff7f50320 00007ffec6eff240 00007ffff7f54420
GPR20: 00000000000004ba 00000001000016c0 0000000100034840 0000000000000000
GPR24: 0000000000000000 00007ffec6eff8f0 0000000000000000 00007ffec6efea80
GPR28: 00007ffffffff38f c000001e2e05d600 00007ffec6eff180 c000001e41877e80
[ 308.825724] NIP [c000000000038640] syscall_exit_prepare+0x350/0x390
[ 308.825734] LR [c00000000000ddcc] system_call_common+0xfc/0x27c
[ 308.825741] Call Trace:
[ 308.825751] [c000001e41877da0] [c000001e41877e10] 0xc000001e41877e10 (unreliable)
[ 308.825763] [c000001e41877e10] [c00000000000ddcc] system_call_common+0xfc/0x27c
[ 308.825771] Instruction dump:
[ 308.825778] 713c0800 4082004c f87f0018 395d0080 39001800 7ce050a8 7ce74078 7ce051ad
[ 308.825794] 40c2fff4 4bfffd54 60000000 60000000 <0fe00000> 4bfffd18 60000000 60000000
[ 308.825811] ---[ end trace 57dae589ab37c54c ]---
That's on power8, both bare metal and LPAR.
cheers
More information about the Linuxppc-dev
mailing list