On Fri, Jan 11, 2019 at 6:34 AM Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> wrote: > > 4.14-stable review patch. If anyone has any objections, please let me know. > > ------------------ > > From: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> > > commit dd6846d774693bfa27d7db4dae5ea67dfe373fa1 upstream. > > Commit 1212f7a16af4 ("scripts/kallsyms: filter arm64's __efistub_ > symbols") updated the kallsyms code to filter out symbols with > the __efistub_ prefix explicitly, so we no longer require the > hack in our linker script to emit them as absolute symbols. !!! Sorry, I think we should pick 1212f7a16af4 ("scripts/kallsyms: filter arm64's __efistub_ symbols") for 4.14 to go with this patch. My usual gitfu to see the first tag that contained a commit `git describe --contains "$tag" | sed 's/~.*//'` says next-20180319 which isn't something I recognize or would have expected. I see the changed code in 4.19.y LTS but not 4.14.y LTS. > > Cc: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> > Signed-off-by: Will Deacon <will.deacon@xxxxxxx> > [ND: adjusted for context] > Signed-off-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > --- > arch/arm64/kernel/image.h | 44 +++++++++++++++++--------------------------- > 1 file changed, 17 insertions(+), 27 deletions(-) > > --- a/arch/arm64/kernel/image.h > +++ b/arch/arm64/kernel/image.h > @@ -76,16 +76,6 @@ > __efistub_stext_offset = stext - _text; > > /* > - * Prevent the symbol aliases below from being emitted into the kallsyms > - * table, by forcing them to be absolute symbols (which are conveniently > - * ignored by scripts/kallsyms) rather than section relative symbols. > - * The distinction is only relevant for partial linking, and only for symbols > - * that are defined within a section declaration (which is not the case for > - * the definitions below) so the resulting values will be identical. > - */ > -#define KALLSYMS_HIDE(sym) ABSOLUTE(sym) > - > -/* > * The EFI stub has its own symbol namespace prefixed by __efistub_, to > * isolate it from the kernel proper. The following symbols are legally > * accessed by the stub, so provide some aliases to make them accessible. > @@ -94,27 +84,27 @@ __efistub_stext_offset = stext - _text; > * linked at. The routines below are all implemented in assembler in a > * position independent manner > */ > -__efistub_memcmp = KALLSYMS_HIDE(__pi_memcmp); > -__efistub_memchr = KALLSYMS_HIDE(__pi_memchr); > -__efistub_memcpy = KALLSYMS_HIDE(__pi_memcpy); > -__efistub_memmove = KALLSYMS_HIDE(__pi_memmove); > -__efistub_memset = KALLSYMS_HIDE(__pi_memset); > -__efistub_strlen = KALLSYMS_HIDE(__pi_strlen); > -__efistub_strnlen = KALLSYMS_HIDE(__pi_strnlen); > -__efistub_strcmp = KALLSYMS_HIDE(__pi_strcmp); > -__efistub_strncmp = KALLSYMS_HIDE(__pi_strncmp); > -__efistub___flush_dcache_area = KALLSYMS_HIDE(__pi___flush_dcache_area); > +__efistub_memcmp = __pi_memcmp; > +__efistub_memchr = __pi_memchr; > +__efistub_memcpy = __pi_memcpy; > +__efistub_memmove = __pi_memmove; > +__efistub_memset = __pi_memset; > +__efistub_strlen = __pi_strlen; > +__efistub_strnlen = __pi_strnlen; > +__efistub_strcmp = __pi_strcmp; > +__efistub_strncmp = __pi_strncmp; > +__efistub___flush_dcache_area = __pi___flush_dcache_area; > > #ifdef CONFIG_KASAN > -__efistub___memcpy = KALLSYMS_HIDE(__pi_memcpy); > -__efistub___memmove = KALLSYMS_HIDE(__pi_memmove); > -__efistub___memset = KALLSYMS_HIDE(__pi_memset); > +__efistub___memcpy = __pi_memcpy; > +__efistub___memmove = __pi_memmove; > +__efistub___memset = __pi_memset; > #endif > > -__efistub__text = KALLSYMS_HIDE(_text); > -__efistub__end = KALLSYMS_HIDE(_end); > -__efistub__edata = KALLSYMS_HIDE(_edata); > -__efistub_screen_info = KALLSYMS_HIDE(screen_info); > +__efistub__text = _text; > +__efistub__end = _end; > +__efistub__edata = _edata; > +__efistub_screen_info = screen_info; > > #endif > > > -- Thanks, ~Nick Desaulniers