From 25af881d1a0ed91e334a8376006b70ae5e463abb Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 11 Jan 2019 06:35:18 +0100 Subject: [PATCH] 4.14-stable patches added patches: arm64-drop-linker-script-hack-to-hide-__efistub_-symbols.patch --- ...ript-hack-to-hide-__efistub_-symbols.patch | 88 +++++++++++++++++++ queue-4.14/series | 1 + 2 files changed, 89 insertions(+) create mode 100644 queue-4.14/arm64-drop-linker-script-hack-to-hide-__efistub_-symbols.patch diff --git a/queue-4.14/arm64-drop-linker-script-hack-to-hide-__efistub_-symbols.patch b/queue-4.14/arm64-drop-linker-script-hack-to-hide-__efistub_-symbols.patch new file mode 100644 index 00000000000..59f24d808a1 --- /dev/null +++ b/queue-4.14/arm64-drop-linker-script-hack-to-hide-__efistub_-symbols.patch @@ -0,0 +1,88 @@ +From foo@baz Fri Jan 11 06:34:37 CET 2019 +From: Ard Biesheuvel +Date: Tue, 8 Jan 2019 13:15:49 -0800 +Subject: arm64: drop linker script hack to hide __efistub_ symbols + +From: Ard Biesheuvel + +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. + +Cc: Nick Desaulniers +Signed-off-by: Ard Biesheuvel +Signed-off-by: Will Deacon +[ND: adjusted for context] +Signed-off-by: Nick Desaulniers +Signed-off-by: Greg Kroah-Hartman +--- + 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 + diff --git a/queue-4.14/series b/queue-4.14/series index 6c365dd907d..3c9424d4144 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -90,3 +90,4 @@ gfs2-fix-loop-in-gfs2_rbm_find.patch b43-fix-error-in-cordic-routine.patch selinux-policydb-fix-byte-order-and-alignment-issues.patch lockd-show-pid-of-lockd-for-remote-locks.patch +arm64-drop-linker-script-hack-to-hide-__efistub_-symbols.patch -- 2.47.3