| From 2f1c6a4a8bb7501be85ca543ecc8806e20da7f0f Mon Sep 17 00:00:00 2001 |
| From: Arvind Sankar <nivedita@alum.mit.edu> |
| Date: Mon, 23 Sep 2019 13:17:54 -0400 |
| Subject: [PATCH] x86/purgatory: Disable the stackleak GCC plugin for the |
| purgatory |
| |
| commit ca14c996afe7228ff9b480cf225211cc17212688 upstream. |
| |
| Since commit: |
| |
| b059f801a937 ("x86/purgatory: Use CFLAGS_REMOVE rather than reset KBUILD_CFLAGS") |
| |
| kexec breaks if GCC_PLUGIN_STACKLEAK=y is enabled, as the purgatory |
| contains undefined references to stackleak_track_stack. |
| |
| Attempting to load a kexec kernel results in this failure: |
| |
| kexec: Undefined symbol: stackleak_track_stack |
| kexec-bzImage64: Loading purgatory failed |
| |
| Fix this by disabling the stackleak plugin for the purgatory. |
| |
| Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu> |
| Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> |
| Cc: Borislav Petkov <bp@alien8.de> |
| Cc: H. Peter Anvin <hpa@zytor.com> |
| Cc: Linus Torvalds <torvalds@linux-foundation.org> |
| Cc: Peter Zijlstra <peterz@infradead.org> |
| Cc: Thomas Gleixner <tglx@linutronix.de> |
| Fixes: b059f801a937 ("x86/purgatory: Use CFLAGS_REMOVE rather than reset KBUILD_CFLAGS") |
| Link: https://lkml.kernel.org/r/20190923171753.GA2252517@rani.riverdale.lan |
| Signed-off-by: Ingo Molnar <mingo@kernel.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/arch/x86/purgatory/Makefile b/arch/x86/purgatory/Makefile |
| index 10fb42da0007..b81b5172cf99 100644 |
| --- a/arch/x86/purgatory/Makefile |
| +++ b/arch/x86/purgatory/Makefile |
| @@ -23,6 +23,7 @@ KCOV_INSTRUMENT := n |
| |
| PURGATORY_CFLAGS_REMOVE := -mcmodel=kernel |
| PURGATORY_CFLAGS := -mcmodel=large -ffreestanding -fno-zero-initialized-in-bss |
| +PURGATORY_CFLAGS += $(DISABLE_STACKLEAK_PLUGIN) |
| |
| # Default KBUILD_CFLAGS can have -pg option set when FTRACE is enabled. That |
| # in turn leaves some undefined symbols like __fentry__ in purgatory and not |
| -- |
| 2.7.4 |
| |