The patch titled Subject: ARM: remove Thumb2 __builtin_thread_pointer workaround for Clang has been added to the -mm mm-nonmm-unstable branch. Its filename is arm-remove-thumb2-__builtin_thread_pointer-workaround-for-clang.patch This patch will shortly appear at https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/arm-remove-thumb2-__builtin_thread_pointer-workaround-for-clang.patch This patch will later appear in the mm-nonmm-unstable branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next via the mm-everything branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm and is updated there every 2-3 working days ------------------------------------------------------ From: Nathan Chancellor <nathan@xxxxxxxxxx> Subject: ARM: remove Thumb2 __builtin_thread_pointer workaround for Clang Date: Thu, 25 Jan 2024 15:55:10 -0700 Now that the minimum supported version of LLVM for building the kernel has been bumped to 13.0.1, the conditional expression added to get_current() by commit c1e42efacb9b ("ARM: 9151/1: Thumb2: avoid __builtin_thread_pointer() on Clang") is always true, as the build will fail during the configuration stage for older LLVM versions. Remove it, effectively reverting the aforementioned change. Link: https://lkml.kernel.org/r/20240125-bump-min-llvm-ver-to-13-0-1-v1-4-f5ff9bda41c5@xxxxxxxxxx Signed-off-by: Nathan Chancellor <nathan@xxxxxxxxxx> Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx> Cc: Albert Ou <aou@xxxxxxxxxxxxxxxxx> Cc: "Aneesh Kumar K.V (IBM)" <aneesh.kumar@xxxxxxxxxx> Cc: Ard Biesheuvel <ardb@xxxxxxxxxx> Cc: Borislav Petkov (AMD) <bp@xxxxxxxxx> Cc: Catalin Marinas <catalin.marinas@xxxxxxx> Cc: Conor Dooley <conor@xxxxxxxxxx> Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx> Cc: Ingo Molnar <mingo@xxxxxxxxxx> Cc: Mark Rutland <mark.rutland@xxxxxxx> Cc: Masahiro Yamada <masahiroy@xxxxxxxxxx> Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx> Cc: "Naveen N. Rao" <naveen.n.rao@xxxxxxxxxxxxx> Cc: Nicholas Piggin <npiggin@xxxxxxxxx> Cc: Nicolas Schier <nicolas@xxxxxxxxx> Cc: Palmer Dabbelt <palmer@xxxxxxxxxxx> Cc: Paul Walmsley <paul.walmsley@xxxxxxxxxx> Cc: Russell King <linux@xxxxxxxxxxxxxxx> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Cc: Will Deacon <will@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- arch/arm/include/asm/current.h | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) --- a/arch/arm/include/asm/current.h~arm-remove-thumb2-__builtin_thread_pointer-workaround-for-clang +++ a/arch/arm/include/asm/current.h @@ -18,18 +18,12 @@ static __always_inline __attribute_const { struct task_struct *cur; -#if __has_builtin(__builtin_thread_pointer) && \ - defined(CONFIG_CURRENT_POINTER_IN_TPIDRURO) && \ - !(defined(CONFIG_THUMB2_KERNEL) && \ - defined(CONFIG_CC_IS_CLANG) && CONFIG_CLANG_VERSION < 130001) +#if __has_builtin(__builtin_thread_pointer) && defined(CONFIG_CURRENT_POINTER_IN_TPIDRURO) /* * Use the __builtin helper when available - this results in better * code, especially when using GCC in combination with the per-task * stack protector, as the compiler will recognize that it needs to * load the TLS register only once in every function. - * - * Clang < 13.0.1 gets this wrong for Thumb2 builds: - * https://github.com/ClangBuiltLinux/linux/issues/1485 */ cur = __builtin_thread_pointer(); #elif defined(CONFIG_CURRENT_POINTER_IN_TPIDRURO) || defined(CONFIG_SMP) _ Patches currently in -mm which might be from nathan@xxxxxxxxxx are selftests-bpf-update-llvm-phabricator-links.patch arch-and-include-update-llvm-phabricator-links.patch treewide-update-llvm-bugzilla-links.patch kbuild-raise-the-minimum-supported-version-of-llvm-to-1301.patch makefile-drop-warn-stack-size-plugin-opt.patch x86-drop-stack-alignment-plugin-opt.patch arm-remove-thumb2-__builtin_thread_pointer-workaround-for-clang.patch arm64-kconfig-clean-up-tautological-llvm-version-checks.patch powerpc-kconfig-remove-tautology-in-config_compat.patch riscv-remove-mcount_name-workaround.patch riscv-kconfig-remove-version-dependency-from-config_clang_supports_dynamic_ftrace.patch fortify-drop-clang-version-check-for-1201-or-newer.patch lib-kconfigdebug-update-clang-version-check-in-config_kcov.patch compiler-clangh-update-__diag_clang-macros-for-minimum-version-bump.patch