]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.9-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 9 Mar 2022 22:39:01 +0000 (23:39 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 9 Mar 2022 22:39:01 +0000 (23:39 +0100)
added patches:
x86-build-fix-compiler-support-check-for-config_retpoline.patch
x86-modpost-replace-last-remnants-of-retpoline-with-config_retpoline.patch

queue-4.9/series
queue-4.9/x86-build-fix-compiler-support-check-for-config_retpoline.patch [new file with mode: 0644]
queue-4.9/x86-modpost-replace-last-remnants-of-retpoline-with-config_retpoline.patch [new file with mode: 0644]

index f0e721122c62b77870e02e838c58370f5225a659..cca32bbc45ee4c4a5c2469d74484720dc6269150 100644 (file)
@@ -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 (file)
index 0000000..22529e0
--- /dev/null
@@ -0,0 +1,67 @@
+From foo@baz Wed Mar  9 11:38:23 PM CET 2022
+From: Masahiro Yamada <yamada.masahiro@socionext.com>
+Date: Wed, 5 Dec 2018 15:27:19 +0900
+Subject: x86/build: Fix compiler support check for CONFIG_RETPOLINE
+
+From: Masahiro Yamada <yamada.masahiro@socionext.com>
+
+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 <mroos@linux.ee>
+Tested-by: Meelis Roos <mroos@linux.ee>
+Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
+Acked-by: Zhenzhong Duan <zhenzhong.duan@oracle.com>
+Cc: Borislav Petkov <bp@alien8.de>
+Cc: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Cc: Thomas Gleixner <tglx@linutronix.de>
+Cc: Zhenzhong Duan <zhenzhong.duan@oracle.com>
+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 <mingo@kernel.org>
+[bwh: Backported to 4.9: adjust context]
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ 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 (file)
index 0000000..2aa80f9
--- /dev/null
@@ -0,0 +1,100 @@
+From foo@baz Wed Mar  9 11:38:31 PM CET 2022
+From: WANG Chao <chao.wang@ucloud.cn>
+Date: Tue, 11 Dec 2018 00:37:25 +0800
+Subject: x86, modpost: Replace last remnants of RETPOLINE with CONFIG_RETPOLINE
+
+From: WANG Chao <chao.wang@ucloud.cn>
+
+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 <chao.wang@ucloud.cn>
+Signed-off-by: Borislav Petkov <bp@suse.de>
+Reviewed-by: Zhenzhong Duan <zhenzhong.duan@oracle.com>
+Reviewed-by: Masahiro Yamada <yamada.masahiro@socionext.com>
+Cc: "H. Peter Anvin" <hpa@zytor.com>
+Cc: Andi Kleen <ak@linux.intel.com>
+Cc: Andrew Morton <akpm@linux-foundation.org>
+Cc: Andy Lutomirski <luto@kernel.org>
+Cc: Arnd Bergmann <arnd@arndb.de>
+Cc: Daniel Borkmann <daniel@iogearbox.net>
+Cc: David Woodhouse <dwmw@amazon.co.uk>
+Cc: Geert Uytterhoeven <geert@linux-m68k.org>
+Cc: Jessica Yu <jeyu@kernel.org>
+Cc: Jiri Kosina <jkosina@suse.cz>
+Cc: Kees Cook <keescook@chromium.org>
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Cc: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
+Cc: Michal Marek <michal.lkml@markovi.net>
+Cc: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Cc: Tim Chen <tim.c.chen@linux.intel.com>
+Cc: Vasily Gorbik <gor@linux.ibm.com>
+Cc: linux-kbuild@vger.kernel.org
+Cc: srinivas.eeda@oracle.com
+Cc: stable <stable@vger.kernel.org>
+Cc: x86-ml <x86@kernel.org>
+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 <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ 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");
+ }