elf: Expose ELF header in compat_start_thread()
authorGabriel Krisman Bertazi <krisman@collabora.com>
Sun, 4 Oct 2020 03:25:31 +0000 (23:25 -0400)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 26 Oct 2020 12:46:46 +0000 (13:46 +0100)
commitbc3d7bf61a9eaecccc84dc2ecc2a9a3fa4f5ec47
tree989c432e32d5cc77386483be52b02cb4bff96bc1
parent2656af0d5abfa26d7f1e40f92e9953fe155b950a
elf: Expose ELF header in compat_start_thread()

Like it is done for SET_PERSONALITY with x86, which requires the ELF header
to select correct personality parameters, x86 requires the headers on
compat_start_thread() to choose starting CS for ELF32 binaries, instead of
relying on the going-away TIF_IA32/X32 flags.

Add an indirection macro to ELF invocations of START_THREAD, that x86 can
reimplement to receive the extra parameter just for ELF files.  This
requires no changes to other architectures who don't need the header
information, they can continue to use the original start_thread for ELF and
non-ELF binaries, and it prevents affecting non-ELF code paths for x86.

Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20201004032536.1229030-6-krisman@collabora.com
fs/binfmt_elf.c
fs/compat_binfmt_elf.c
include/linux/elf.h