| From: Ricardo Ribalda <ribalda@chromium.org> |
| Subject: x86/purgatory: remove PGO flags |
| Date: Fri, 19 May 2023 16:47:37 +0200 |
| |
| If profile-guided optimization is enabled, the purgatory ends up with |
| multiple .text sections. This is not supported by kexec and crashes the |
| system. |
| |
| Link: https://lkml.kernel.org/r/20230321-kexec_clang16-v7-2-b05c520b7296@chromium.org |
| Fixes: 930457057abe ("kernel/kexec_file.c: split up __kexec_load_puragory") |
| Signed-off-by: Ricardo Ribalda <ribalda@chromium.org> |
| Cc: <stable@vger.kernel.org> |
| Cc: Albert Ou <aou@eecs.berkeley.edu> |
| Cc: Baoquan He <bhe@redhat.com> |
| Cc: Borislav Petkov (AMD) <bp@alien8.de> |
| Cc: Christophe Leroy <christophe.leroy@csgroup.eu> |
| Cc: Dave Hansen <dave.hansen@linux.intel.com> |
| Cc: Dave Young <dyoung@redhat.com> |
| Cc: Eric W. Biederman <ebiederm@xmission.com> |
| Cc: "H. Peter Anvin" <hpa@zytor.com> |
| Cc: Ingo Molnar <mingo@redhat.com> |
| Cc: Michael Ellerman <mpe@ellerman.id.au> |
| Cc: Nathan Chancellor <nathan@kernel.org> |
| Cc: Nicholas Piggin <npiggin@gmail.com> |
| Cc: Nick Desaulniers <ndesaulniers@google.com> |
| Cc: Palmer Dabbelt <palmer@dabbelt.com> |
| Cc: Palmer Dabbelt <palmer@rivosinc.com> |
| Cc: Paul Walmsley <paul.walmsley@sifive.com> |
| Cc: Philipp Rudo <prudo@redhat.com> |
| Cc: Ross Zwisler <zwisler@google.com> |
| Cc: Simon Horman <horms@kernel.org> |
| Cc: Steven Rostedt (Google) <rostedt@goodmis.org> |
| Cc: Thomas Gleixner <tglx@linutronix.de> |
| Cc: Tom Rix <trix@redhat.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| arch/x86/purgatory/Makefile | 5 +++++ |
| 1 file changed, 5 insertions(+) |
| |
| --- a/arch/x86/purgatory/Makefile~x86-purgatory-remove-pgo-flags |
| +++ a/arch/x86/purgatory/Makefile |
| @@ -14,6 +14,11 @@ $(obj)/sha256.o: $(srctree)/lib/crypto/s |
| |
| CFLAGS_sha256.o := -D__DISABLE_EXPORTS |
| |
| +# When profile-guided optimization is enabled, llvm emits two different |
| +# overlapping text sections, which is not supported by kexec. Remove profile |
| +# optimization flags. |
| +KBUILD_CFLAGS := $(filter-out -fprofile-sample-use=% -fprofile-use=%,$(KBUILD_CFLAGS)) |
| + |
| # When linking purgatory.ro with -r unresolved symbols are not checked, |
| # also link a purgatory.chk binary without -r to check for unresolved symbols. |
| PURGATORY_LDFLAGS := -e purgatory_start -z nodefaultlib |
| _ |