Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux

Pull arm64 fixes from Will Deacon:
"Three small arm64 fixes, all related to optional architecture
extensions: BTI, SME and 52-bit virtual addressing:

- Disable in-kernel BTI when compiling with GCC, as it makes invalid
assumptions about the distance between functions which has led to
crashes when calling modules on a CPU with BTI support

- Remove bogus TIF_SME flag management if memory allocation fails in
the ptrace code

- Fix the resume path when configured for 52-bit virtual addressing"

* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
arm64: mm: fix resume for 52-bit enabled builds
arm64/ptrace: Don't clear calling process' TIF_SME on OOM
arm64/bti: Disable in kernel BTI when cross section thunks are broken

Changed files
+5 -2
arch
arm64
+2
arch/arm64/Kconfig
··· 1887 1887 depends on CC_HAS_BRANCH_PROT_PAC_RET_BTI 1888 1888 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94697 1889 1889 depends on !CC_IS_GCC || GCC_VERSION >= 100100 1890 + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106671 1891 + depends on !CC_IS_GCC 1890 1892 # https://github.com/llvm/llvm-project/commit/a88c722e687e6780dcd6a58718350dc76fcc4cc9 1891 1893 depends on !CC_IS_CLANG || CLANG_VERSION >= 120000 1892 1894 depends on (!FUNCTION_GRAPH_TRACER || DYNAMIC_FTRACE_WITH_REGS)
-2
arch/arm64/kernel/ptrace.c
··· 1084 1084 if (!target->thread.sve_state) { 1085 1085 sve_alloc(target, false); 1086 1086 if (!target->thread.sve_state) { 1087 - clear_thread_flag(TIF_SME); 1088 1087 ret = -ENOMEM; 1089 1088 goto out; 1090 1089 } ··· 1093 1094 sme_alloc(target); 1094 1095 if (!target->thread.za_state) { 1095 1096 ret = -ENOMEM; 1096 - clear_tsk_thread_flag(target, TIF_SME); 1097 1097 goto out; 1098 1098 } 1099 1099
+3
arch/arm64/kernel/sleep.S
··· 101 101 SYM_CODE_START(cpu_resume) 102 102 bl init_kernel_el 103 103 bl finalise_el2 104 + #if VA_BITS > 48 105 + ldr_l x0, vabits_actual 106 + #endif 104 107 bl __cpu_setup 105 108 /* enable the MMU early - so we can access sleep_save_stash by va */ 106 109 adrp x1, swapper_pg_dir