Re: [PATCH 1/2] Add RUNTIME_DISCARD_EXIT to generic DISCARDS
From: Borislav Petkov
Date: Thu Mar 26 2020 - 16:12:00 EST
On Thu, Mar 26, 2020 at 12:30:20PM -0700, H.J. Lu wrote:
> In x86 kernel, .exit.text and .exit.data sections are discarded at
> runtime, not by linker. Add RUNTIME_DISCARD_EXIT to generic DISCARDS
> and define it in x86 kernel linker script to keep them.
>
> Signed-off-by: H.J. Lu <hjl.tools@xxxxxxxxx>
> Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx>
> ---
> arch/x86/kernel/vmlinux.lds.S | 1 +
> include/asm-generic/vmlinux.lds.h | 10 ++++++++--
> 2 files changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
> index e3296aa028fe..7206e1ac23dd 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
> #define EMITS_PT_NOTE
> #define RO_EXCEPTION_TABLE_ALIGN 16
>
> diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
> index e00f41aa8ec4..6b943fb8c5fd 100644
> --- a/include/asm-generic/vmlinux.lds.h
> +++ b/include/asm-generic/vmlinux.lds.h
> @@ -894,10 +894,16 @@
> * 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
/me goes back and reads the old thread on this...
Kees, do you expect other arches to actually need this
RUNTIME_DISCARD_EXIT thing or was that a hypothetical thing?
/me searches more...
oh, there's a patchset from you
https://lkml.kernel.org/r/20200228002244.15240-1-keescook@xxxxxxxxxxxx
which already contains this patch *and* an ARM64 patch which defines
RUNTIME_DISCARD_EXIT so I'm guessing ARM64 wants to discard at runtime
too.
Which leaves the question why is H.J. sending that patch separate and
you carry it in a patchset about orphan section warning? Seems like it
wants to be in your patchset?
Thx.
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette