aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/entry/common.c
diff options
context:
space:
mode:
authorNikolay Borisov <[email protected]>2023-06-23 11:14:08 +0000
committerThomas Gleixner <[email protected]>2023-09-14 11:19:53 +0000
commit61382281e9054df523d3f9cfdba2faff88955f97 (patch)
tree5b30d3598d1977deca31c5cff8619a791417eb04 /arch/x86/entry/common.c
parentx86/elf: Make loading of 32bit processes depend on ia32_enabled() (diff)
downloadkernel-61382281e9054df523d3f9cfdba2faff88955f97.tar.gz
kernel-61382281e9054df523d3f9cfdba2faff88955f97.zip
x86/entry: Make IA32 syscalls' availability depend on ia32_enabled()
Another major aspect of supporting running of 32bit processes is the ability to access 32bit syscalls. Such syscalls can be invoked by using the legacy int 0x80 handler and sysenter/syscall instructions. If IA32 emulation is disabled ensure that each of those 3 distinct mechanisms are also disabled. For int 0x80 a #GP exception would be generated since the respective descriptor is not going to be loaded at all. Invoking sysenter will also result in a #GP since IA32_SYSENTER_CS contains an invalid segment. Finally, syscall instruction cannot really be disabled so it's configured to execute a minimal handler. Signed-off-by: Nikolay Borisov <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Link: https://lore.kernel.org/r/[email protected]
Diffstat (limited to 'arch/x86/entry/common.c')
0 files changed, 0 insertions, 0 deletions