[PATCH v2 0/4] Make IA32_EMULATION boot time overridable

From: Nikolay Borisov
Date: Fri Jun 09 2023 - 07:13:21 EST


Here's the 2nd version of the patch which aims to make IA32_EMULATION essentially
a boot time option. The changes in this posting are:

* Introduced a compile-time option CONFIG_IA32_EMULATION_DEFAULT_DISABLED which
can be set during compile time and can be overriden at boot time via a new
parameter 'ia32_mode'.

* Documented the new parameter as per Thomas' suggestion

* Added a new patch which renames ignore_sysret as per Andrew Cooper's suggestion

* Fixed compat_elf_check_arch condition check to only affect compat process
loading and leave x32 abi processes alone

* Dropped GDT modification as this was deemed a separate change. Likely I'd need
to follow up with a more complete solution.

Nikolay Borisov (4):
x86: Introduce CONFIG_IA32_EMULATION_DEFAULT_DISABLED Kconfig option
x86/entry: Rename ignore_sysret and compile it unconditionally
x86/entry: Disable IA32 syscall if ia32_disabled is true
x86: Disable laoding 32bit processes if ia32_disabled is true

.../admin-guide/kernel-parameters.txt | 4 ++
arch/x86/Kconfig | 5 +++
arch/x86/entry/common.c | 16 ++++++++
arch/x86/entry/entry_64.S | 6 +--
arch/x86/include/asm/desc.h | 1 +
arch/x86/include/asm/elf.h | 9 ++++-
arch/x86/include/asm/processor.h | 2 +-
arch/x86/include/asm/traps.h | 4 ++
arch/x86/kernel/cpu/common.c | 37 ++++++++++---------
arch/x86/kernel/idt.c | 7 ++++
10 files changed, 67 insertions(+), 24 deletions(-)

--
2.34.1