diff options
| -rw-r--r-- | arch/x86/kernel/entry_32.S | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S index dbaa23e78b36..0d0c9d4ab6d5 100644 --- a/arch/x86/kernel/entry_32.S +++ b/arch/x86/kernel/entry_32.S | |||
| @@ -425,8 +425,8 @@ sysenter_do_call: | |||
| 425 | cmpl $(NR_syscalls), %eax | 425 | cmpl $(NR_syscalls), %eax |
| 426 | jae sysenter_badsys | 426 | jae sysenter_badsys |
| 427 | call *sys_call_table(,%eax,4) | 427 | call *sys_call_table(,%eax,4) |
| 428 | movl %eax,PT_EAX(%esp) | ||
| 429 | sysenter_after_call: | 428 | sysenter_after_call: |
| 429 | movl %eax,PT_EAX(%esp) | ||
| 430 | LOCKDEP_SYS_EXIT | 430 | LOCKDEP_SYS_EXIT |
| 431 | DISABLE_INTERRUPTS(CLBR_ANY) | 431 | DISABLE_INTERRUPTS(CLBR_ANY) |
| 432 | TRACE_IRQS_OFF | 432 | TRACE_IRQS_OFF |
| @@ -502,6 +502,7 @@ ENTRY(system_call) | |||
| 502 | jae syscall_badsys | 502 | jae syscall_badsys |
| 503 | syscall_call: | 503 | syscall_call: |
| 504 | call *sys_call_table(,%eax,4) | 504 | call *sys_call_table(,%eax,4) |
| 505 | syscall_after_call: | ||
| 505 | movl %eax,PT_EAX(%esp) # store the return value | 506 | movl %eax,PT_EAX(%esp) # store the return value |
| 506 | syscall_exit: | 507 | syscall_exit: |
| 507 | LOCKDEP_SYS_EXIT | 508 | LOCKDEP_SYS_EXIT |
| @@ -675,12 +676,12 @@ syscall_fault: | |||
| 675 | END(syscall_fault) | 676 | END(syscall_fault) |
| 676 | 677 | ||
| 677 | syscall_badsys: | 678 | syscall_badsys: |
| 678 | movl $-ENOSYS,PT_EAX(%esp) | 679 | movl $-ENOSYS,%eax |
| 679 | jmp syscall_exit | 680 | jmp syscall_after_call |
| 680 | END(syscall_badsys) | 681 | END(syscall_badsys) |
| 681 | 682 | ||
| 682 | sysenter_badsys: | 683 | sysenter_badsys: |
| 683 | movl $-ENOSYS,PT_EAX(%esp) | 684 | movl $-ENOSYS,%eax |
| 684 | jmp sysenter_after_call | 685 | jmp sysenter_after_call |
| 685 | END(syscall_badsys) | 686 | END(syscall_badsys) |
| 686 | CFI_ENDPROC | 687 | CFI_ENDPROC |
