Re: [PATCH v3 5/5] x86/entry: Make IA32 syscalls' availability depend on ia32_enabled()

From: Nikolay Borisov
Date: Mon Jun 19 2023 - 02:28:41 EST




On 19.06.23 г. 0:17 ч., Thomas Gleixner wrote:
On Fri, Jun 16 2023 at 15:57, Nikolay Borisov wrote:
Another major aspect of supporting running of 32bit processes is the
ability to access 32bit syscalls. Such syscalls are invoked either by
using the legacy int 0x80 call gate interface or via the newer sysenter
instruction.

Ensure that if ia32 emulation is disabled (either at compile time or
runtime) then those 2 syscall mechanisms are also disabled.

AFAICT there are _three_ mechanisms for 32bit syscalls, no?

int 0x80 and sysenter make it 2? Which one is the 3rd one - the "native 64bit syscall" used in for X32 ABI ? This patch specifically deals with the first 2?

void __init idt_setup_traps(void)
{
idt_setup_from_table(idt_table, def_idts, ARRAY_SIZE(def_idts), true);
+
+ if (ia32_enabled()) {
+ idt_setup_from_table(idt_table, ia32_idt, ARRAY_SIZE(ia32_idt),
+ true);

Just let it stick out. The 80 character limit is history.

Thanks,

tglx