diff options
-rw-r--r-- | arch/x86/ia32/ia32entry.S | 2 | ||||
-rw-r--r-- | arch/x86/kernel/entry_64.S | 15 |
2 files changed, 15 insertions, 2 deletions
diff --git a/arch/x86/ia32/ia32entry.S b/arch/x86/ia32/ia32entry.S index 5d8f987a340d..a821b1cd4fa7 100644 --- a/arch/x86/ia32/ia32entry.S +++ b/arch/x86/ia32/ia32entry.S | |||
@@ -571,8 +571,6 @@ GLOBAL(\label) | |||
571 | 571 | ||
572 | PTREGSCALL stub32_rt_sigreturn, sys32_rt_sigreturn | 572 | PTREGSCALL stub32_rt_sigreturn, sys32_rt_sigreturn |
573 | PTREGSCALL stub32_sigreturn, sys32_sigreturn | 573 | PTREGSCALL stub32_sigreturn, sys32_sigreturn |
574 | PTREGSCALL stub32_execve, compat_sys_execve | ||
575 | PTREGSCALL stub32_execveat, compat_sys_execveat | ||
576 | PTREGSCALL stub32_fork, sys_fork | 574 | PTREGSCALL stub32_fork, sys_fork |
577 | PTREGSCALL stub32_vfork, sys_vfork | 575 | PTREGSCALL stub32_vfork, sys_vfork |
578 | 576 | ||
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S index f7d9ba6f73a3..5380b3a8f3e5 100644 --- a/arch/x86/kernel/entry_64.S +++ b/arch/x86/kernel/entry_64.S | |||
@@ -538,6 +538,21 @@ ENTRY(stub_x32_execveat) | |||
538 | END(stub_x32_execveat) | 538 | END(stub_x32_execveat) |
539 | #endif | 539 | #endif |
540 | 540 | ||
541 | #ifdef CONFIG_IA32_EMULATION | ||
542 | ENTRY(stub32_execve) | ||
543 | CFI_STARTPROC | ||
544 | call compat_sys_execve | ||
545 | jmp return_from_execve | ||
546 | CFI_ENDPROC | ||
547 | END(stub32_execve) | ||
548 | ENTRY(stub32_execveat) | ||
549 | CFI_STARTPROC | ||
550 | call compat_sys_execveat | ||
551 | jmp return_from_execve | ||
552 | CFI_ENDPROC | ||
553 | END(stub32_execveat) | ||
554 | #endif | ||
555 | |||
541 | /* | 556 | /* |
542 | * sigreturn is special because it needs to restore all registers on return. | 557 | * sigreturn is special because it needs to restore all registers on return. |
543 | * This cannot be done with SYSRET, so use the IRET return path instead. | 558 | * This cannot be done with SYSRET, so use the IRET return path instead. |