[PATCH 5.4 v2 1/6] x86, vmlinux.lds: Add RUNTIME_DISCARD_EXIT to generic DISCARDS

Tom Saeger tom.saeger at oracle.com
Fri Feb 24 06:08:36 AEDT 2023


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 at 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 at gmail.com>
> > Signed-off-by: Borislav Petkov <bp at suse.de>
> > Reviewed-by: Kees Cook <keescook at chromium.org>
> > Link: https://lkml.kernel.org/r/20200326193021.255002-1-hjl.tools@gmail.com
> > Signed-off-by: Tom Saeger <tom.saeger at 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
-------------- next part --------------
#!/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 at 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}")


More information about the Linuxppc-dev mailing list