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@xxxxxxxxx> > > > > 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@xxxxxxxxx> > > Signed-off-by: Borislav Petkov <bp@xxxxxxx> > > Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx> > > Link: https://lkml.kernel.org/r/20200326193021.255002-1-hjl.tools@xxxxxxxxx > > Signed-off-by: Tom Saeger <tom.saeger@xxxxxxxxxx> > > --- > > 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@xxxxxxxxx> # 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}")