Message ID | 20230210-tsaeger-upstream-linux-stable-5-4-v2-1-a56d1e0f5e98@oracle.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | Fix Build ID on arm64 if CONFIG_MODVERSIONS=y | expand |
Context | Check | Description |
---|---|---|
conchuod/tree_selection | fail | Failed to apply to next/pending-fixes or riscv/for-next |
On Fri, Feb 10, 2023 at 01:20:22PM -0700, Tom Saeger wrote: > From: "H.J. Lu" <hjl.tools@gmail.com> > > commit 84d5f77fc2ee4e010c2c037750e32f06e55224b0 upstream. > > In the x86 kernel, .exit.text and .exit.data sections are discarded at > runtime, not by the linker. Add RUNTIME_DISCARD_EXIT to generic DISCARDS > and define it in the x86 kernel linker script to keep them. > > The sections are added before the DISCARD directive so document here > only the situation explicitly as this change doesn't have any effect on > the generated kernel. Also, other architectures like ARM64 will use it > too so generalize the approach with the RUNTIME_DISCARD_EXIT define. > > [ bp: Massage and extend commit message. ] > > Signed-off-by: H.J. Lu <hjl.tools@gmail.com> > Signed-off-by: Borislav Petkov <bp@suse.de> > Reviewed-by: Kees Cook <keescook@chromium.org> > Link: https://lkml.kernel.org/r/20200326193021.255002-1-hjl.tools@gmail.com > Signed-off-by: Tom Saeger <tom.saeger@oracle.com> > --- > arch/x86/kernel/vmlinux.lds.S | 1 + > include/asm-generic/vmlinux.lds.h | 11 +++++++++-- > 2 files changed, 10 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S > index 1afe211d7a7c..0ae3cd9a25ea 100644 > --- a/arch/x86/kernel/vmlinux.lds.S > +++ b/arch/x86/kernel/vmlinux.lds.S > @@ -21,6 +21,7 @@ > #define LOAD_OFFSET __START_KERNEL_map > #endif > > +#define RUNTIME_DISCARD_EXIT > #include <asm-generic/vmlinux.lds.h> > #include <asm/asm-offsets.h> > #include <asm/thread_info.h> Does this backport look correct from a style point-of-view? Hint, extra blank line needed after the define, like what is done in the original... thanks, greg k-h
On Thu, Feb 23, 2023 at 10:50:22AM +0100, Greg Kroah-Hartman wrote: > On Fri, Feb 10, 2023 at 01:20:22PM -0700, Tom Saeger wrote: > > From: "H.J. Lu" <hjl.tools@gmail.com> > > > > commit 84d5f77fc2ee4e010c2c037750e32f06e55224b0 upstream. > > > > In the x86 kernel, .exit.text and .exit.data sections are discarded at > > runtime, not by the linker. Add RUNTIME_DISCARD_EXIT to generic DISCARDS > > and define it in the x86 kernel linker script to keep them. > > > > The sections are added before the DISCARD directive so document here > > only the situation explicitly as this change doesn't have any effect on > > the generated kernel. Also, other architectures like ARM64 will use it > > too so generalize the approach with the RUNTIME_DISCARD_EXIT define. > > > > [ bp: Massage and extend commit message. ] > > > > Signed-off-by: H.J. Lu <hjl.tools@gmail.com> > > Signed-off-by: Borislav Petkov <bp@suse.de> > > Reviewed-by: Kees Cook <keescook@chromium.org> > > Link: https://lkml.kernel.org/r/20200326193021.255002-1-hjl.tools@gmail.com > > Signed-off-by: Tom Saeger <tom.saeger@oracle.com> > > --- > > arch/x86/kernel/vmlinux.lds.S | 1 + > > include/asm-generic/vmlinux.lds.h | 11 +++++++++-- > > 2 files changed, 10 insertions(+), 2 deletions(-) > > > > diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S > > index 1afe211d7a7c..0ae3cd9a25ea 100644 > > --- a/arch/x86/kernel/vmlinux.lds.S > > +++ b/arch/x86/kernel/vmlinux.lds.S > > @@ -21,6 +21,7 @@ > > #define LOAD_OFFSET __START_KERNEL_map > > #endif > > > > +#define RUNTIME_DISCARD_EXIT > > #include <asm-generic/vmlinux.lds.h> > > #include <asm/asm-offsets.h> > > #include <asm/thread_info.h> > > Does this backport look correct from a style point-of-view? I debated about this. > > Hint, extra blank line needed after the define, like what is done in the > original... I did check, truly. See attached git-cherry-vimdiff I show the blank line introduced here (which isn't in 5.4.y): 441110a547f8 ("vmlinux.lds.h: Provide EMIT_PT_NOTE to indicate export of .notes") And wasn't sure whether to stay with the original or add a blank. I chose the former. I chose wrong. Now I know. Cheers, --Tom > > thanks, > > greg k-h #!/usr/bin/env bash # Given a git hash ($1), # use vimdiff to compare given commit to commit it was cherry-picked from. # # Author: Tom Saeger <tom.saeger@gmail.com> # 6/21/2017 FIRST=${1:-$(tig-pick)} SECOND=${2:-$(git show --format=email "${FIRST}" | sed -ne '/cherry picked/{s/.*commit \([0-9a-z]\+\).*/\1/;p;q;}')} # if not "cherry picked" find first line with "commit" if test -z "${SECOND}" ; then SECOND=$(git show --format=email "${FIRST}" | sed -ne '/commit /{s/.*commit \([0-9a-z]\+\).*/\1/;p;q;}') fi if test -z "${SECOND}" ; then exit 0; fi vim -d <(git show --format=email "${FIRST}") <(git show --format=email "${SECOND}")
diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S index 1afe211d7a7c..0ae3cd9a25ea 100644 --- a/arch/x86/kernel/vmlinux.lds.S +++ b/arch/x86/kernel/vmlinux.lds.S @@ -21,6 +21,7 @@ #define LOAD_OFFSET __START_KERNEL_map #endif +#define RUNTIME_DISCARD_EXIT #include <asm-generic/vmlinux.lds.h> #include <asm/asm-offsets.h> #include <asm/thread_info.h> diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index c3bcac22c389..2d45d98773e2 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@ -900,10 +900,17 @@ * section definitions so that such archs put those in earlier section * definitions. */ +#ifdef RUNTIME_DISCARD_EXIT +#define EXIT_DISCARDS +#else +#define EXIT_DISCARDS \ + EXIT_TEXT \ + EXIT_DATA +#endif + #define DISCARDS \ /DISCARD/ : { \ - EXIT_TEXT \ - EXIT_DATA \ + EXIT_DISCARDS \ EXIT_CALL \ *(.discard) \ *(.discard.*) \