From: Greg Kroah-Hartman Date: Wed, 9 Mar 2022 22:39:01 +0000 (+0100) Subject: 4.9-stable patches X-Git-Tag: v4.9.306~27 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1848c32e1e88ca568a08856ebf931558485773ae;p=thirdparty%2Fkernel%2Fstable-queue.git 4.9-stable patches added patches: x86-build-fix-compiler-support-check-for-config_retpoline.patch x86-modpost-replace-last-remnants-of-retpoline-with-config_retpoline.patch --- diff --git a/queue-4.9/series b/queue-4.9/series index f0e721122c6..cca32bbc45e 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -24,3 +24,5 @@ arm-include-unprivileged-bpf-status-in-spectre-v2-reporting.patch arm-fix-build-error-when-bpf_syscall-is-disabled.patch arm-fix-co-processor-register-typo.patch arm-do-not-use-nocrossrefs-directive-with-ld.lld.patch +x86-build-fix-compiler-support-check-for-config_retpoline.patch +x86-modpost-replace-last-remnants-of-retpoline-with-config_retpoline.patch diff --git a/queue-4.9/x86-build-fix-compiler-support-check-for-config_retpoline.patch b/queue-4.9/x86-build-fix-compiler-support-check-for-config_retpoline.patch new file mode 100644 index 00000000000..22529e01a3c --- /dev/null +++ b/queue-4.9/x86-build-fix-compiler-support-check-for-config_retpoline.patch @@ -0,0 +1,67 @@ +From foo@baz Wed Mar 9 11:38:23 PM CET 2022 +From: Masahiro Yamada +Date: Wed, 5 Dec 2018 15:27:19 +0900 +Subject: x86/build: Fix compiler support check for CONFIG_RETPOLINE + +From: Masahiro Yamada + +commit 25896d073d8a0403b07e6dec56f58e6c33678207 upstream. + +It is troublesome to add a diagnostic like this to the Makefile +parse stage because the top-level Makefile could be parsed with +a stale include/config/auto.conf. + +Once you are hit by the error about non-retpoline compiler, the +compilation still breaks even after disabling CONFIG_RETPOLINE. + +The easiest fix is to move this check to the "archprepare" like +this commit did: + + 829fe4aa9ac1 ("x86: Allow generating user-space headers without a compiler") + +Reported-by: Meelis Roos +Tested-by: Meelis Roos +Signed-off-by: Masahiro Yamada +Acked-by: Zhenzhong Duan +Cc: Borislav Petkov +Cc: Linus Torvalds +Cc: Peter Zijlstra +Cc: Thomas Gleixner +Cc: Zhenzhong Duan +Fixes: 4cd24de3a098 ("x86/retpoline: Make CONFIG_RETPOLINE depend on compiler support") +Link: http://lkml.kernel.org/r/1543991239-18476-1-git-send-email-yamada.masahiro@socionext.com +Link: https://lkml.org/lkml/2018/12/4/206 +Signed-off-by: Ingo Molnar +[bwh: Backported to 4.9: adjust context] +Signed-off-by: Ben Hutchings +Signed-off-by: Greg Kroah-Hartman +--- + arch/x86/Makefile | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +--- a/arch/x86/Makefile ++++ b/arch/x86/Makefile +@@ -221,9 +221,6 @@ ifdef CONFIG_RETPOLINE + RETPOLINE_CFLAGS_CLANG := -mretpoline-external-thunk + + RETPOLINE_CFLAGS += $(call cc-option,$(RETPOLINE_CFLAGS_GCC),$(call cc-option,$(RETPOLINE_CFLAGS_CLANG))) +- ifeq ($(RETPOLINE_CFLAGS),) +- $(error You are building kernel with non-retpoline compiler, please update your compiler.) +- endif + KBUILD_CFLAGS += $(RETPOLINE_CFLAGS) + endif + +@@ -240,6 +237,13 @@ archprepare: + ifeq ($(CONFIG_KEXEC_FILE),y) + $(Q)$(MAKE) $(build)=arch/x86/purgatory arch/x86/purgatory/kexec-purgatory.c + endif ++ifdef CONFIG_RETPOLINE ++ifeq ($(RETPOLINE_CFLAGS),) ++ @echo "You are building kernel with non-retpoline compiler." >&2 ++ @echo "Please update your compiler." >&2 ++ @false ++endif ++endif + + ### + # Kernel objects diff --git a/queue-4.9/x86-modpost-replace-last-remnants-of-retpoline-with-config_retpoline.patch b/queue-4.9/x86-modpost-replace-last-remnants-of-retpoline-with-config_retpoline.patch new file mode 100644 index 00000000000..2aa80f94e2d --- /dev/null +++ b/queue-4.9/x86-modpost-replace-last-remnants-of-retpoline-with-config_retpoline.patch @@ -0,0 +1,100 @@ +From foo@baz Wed Mar 9 11:38:31 PM CET 2022 +From: WANG Chao +Date: Tue, 11 Dec 2018 00:37:25 +0800 +Subject: x86, modpost: Replace last remnants of RETPOLINE with CONFIG_RETPOLINE + +From: WANG Chao + +commit e4f358916d528d479c3c12bd2fd03f2d5a576380 upstream. + +Commit + + 4cd24de3a098 ("x86/retpoline: Make CONFIG_RETPOLINE depend on compiler support") + +replaced the RETPOLINE define with CONFIG_RETPOLINE checks. Remove the +remaining pieces. + + [ bp: Massage commit message. ] + +Fixes: 4cd24de3a098 ("x86/retpoline: Make CONFIG_RETPOLINE depend on compiler support") +Signed-off-by: WANG Chao +Signed-off-by: Borislav Petkov +Reviewed-by: Zhenzhong Duan +Reviewed-by: Masahiro Yamada +Cc: "H. Peter Anvin" +Cc: Andi Kleen +Cc: Andrew Morton +Cc: Andy Lutomirski +Cc: Arnd Bergmann +Cc: Daniel Borkmann +Cc: David Woodhouse +Cc: Geert Uytterhoeven +Cc: Jessica Yu +Cc: Jiri Kosina +Cc: Kees Cook +Cc: Konrad Rzeszutek Wilk +Cc: Luc Van Oostenryck +Cc: Michal Marek +Cc: Miguel Ojeda +Cc: Peter Zijlstra +Cc: Tim Chen +Cc: Vasily Gorbik +Cc: linux-kbuild@vger.kernel.org +Cc: srinivas.eeda@oracle.com +Cc: stable +Cc: x86-ml +Link: https://lkml.kernel.org/r/20181210163725.95977-1-chao.wang@ucloud.cn +[bwh: Backported to 4.9: adjust context] +Signed-off-by: Ben Hutchings +Signed-off-by: Greg Kroah-Hartman +--- + arch/x86/kernel/cpu/bugs.c | 2 +- + include/linux/compiler-gcc.h | 2 +- + include/linux/module.h | 2 +- + scripts/mod/modpost.c | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +--- a/arch/x86/kernel/cpu/bugs.c ++++ b/arch/x86/kernel/cpu/bugs.c +@@ -586,7 +586,7 @@ static enum spectre_v2_user_mitigation s + static enum spectre_v2_user_mitigation spectre_v2_user_ibpb __ro_after_init = + SPECTRE_V2_USER_NONE; + +-#ifdef RETPOLINE ++#ifdef CONFIG_RETPOLINE + static bool spectre_v2_bad_module; + + bool retpoline_module_ok(bool has_retpoline) +--- a/include/linux/compiler-gcc.h ++++ b/include/linux/compiler-gcc.h +@@ -107,7 +107,7 @@ + #define __weak __attribute__((weak)) + #define __alias(symbol) __attribute__((alias(#symbol))) + +-#ifdef RETPOLINE ++#ifdef CONFIG_RETPOLINE + #define __noretpoline __attribute__((indirect_branch("keep"))) + #endif + +--- a/include/linux/module.h ++++ b/include/linux/module.h +@@ -791,7 +791,7 @@ static inline void module_bug_finalize(c + static inline void module_bug_cleanup(struct module *mod) {} + #endif /* CONFIG_GENERIC_BUG */ + +-#ifdef RETPOLINE ++#ifdef CONFIG_RETPOLINE + extern bool retpoline_module_ok(bool has_retpoline); + #else + static inline bool retpoline_module_ok(bool has_retpoline) +--- a/scripts/mod/modpost.c ++++ b/scripts/mod/modpost.c +@@ -2147,7 +2147,7 @@ static void add_intree_flag(struct buffe + /* Cannot check for assembler */ + static void add_retpoline(struct buffer *b) + { +- buf_printf(b, "\n#ifdef RETPOLINE\n"); ++ buf_printf(b, "\n#ifdef CONFIG_RETPOLINE\n"); + buf_printf(b, "MODULE_INFO(retpoline, \"Y\");\n"); + buf_printf(b, "#endif\n"); + }