diff options
Diffstat (limited to 'arch/x86_64/ia32/ia32entry.S')
-rw-r--r-- | arch/x86_64/ia32/ia32entry.S | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/arch/x86_64/ia32/ia32entry.S b/arch/x86_64/ia32/ia32entry.S index 4ec594ab1a98..c536fa98ea37 100644 --- a/arch/x86_64/ia32/ia32entry.S +++ b/arch/x86_64/ia32/ia32entry.S | |||
@@ -155,6 +155,7 @@ sysenter_tracesys: | |||
155 | .previous | 155 | .previous |
156 | jmp sysenter_do_call | 156 | jmp sysenter_do_call |
157 | CFI_ENDPROC | 157 | CFI_ENDPROC |
158 | ENDPROC(ia32_sysenter_target) | ||
158 | 159 | ||
159 | /* | 160 | /* |
160 | * 32bit SYSCALL instruction entry. | 161 | * 32bit SYSCALL instruction entry. |
@@ -178,7 +179,7 @@ sysenter_tracesys: | |||
178 | */ | 179 | */ |
179 | ENTRY(ia32_cstar_target) | 180 | ENTRY(ia32_cstar_target) |
180 | CFI_STARTPROC32 simple | 181 | CFI_STARTPROC32 simple |
181 | CFI_DEF_CFA rsp,0 | 182 | CFI_DEF_CFA rsp,PDA_STACKOFFSET |
182 | CFI_REGISTER rip,rcx | 183 | CFI_REGISTER rip,rcx |
183 | /*CFI_REGISTER rflags,r11*/ | 184 | /*CFI_REGISTER rflags,r11*/ |
184 | swapgs | 185 | swapgs |
@@ -249,6 +250,7 @@ cstar_tracesys: | |||
249 | .quad 1b,ia32_badarg | 250 | .quad 1b,ia32_badarg |
250 | .previous | 251 | .previous |
251 | jmp cstar_do_call | 252 | jmp cstar_do_call |
253 | END(ia32_cstar_target) | ||
252 | 254 | ||
253 | ia32_badarg: | 255 | ia32_badarg: |
254 | movq $-EFAULT,%rax | 256 | movq $-EFAULT,%rax |
@@ -314,16 +316,13 @@ ia32_tracesys: | |||
314 | LOAD_ARGS ARGOFFSET /* reload args from stack in case ptrace changed it */ | 316 | LOAD_ARGS ARGOFFSET /* reload args from stack in case ptrace changed it */ |
315 | RESTORE_REST | 317 | RESTORE_REST |
316 | jmp ia32_do_syscall | 318 | jmp ia32_do_syscall |
319 | END(ia32_syscall) | ||
317 | 320 | ||
318 | ia32_badsys: | 321 | ia32_badsys: |
319 | movq $0,ORIG_RAX-ARGOFFSET(%rsp) | 322 | movq $0,ORIG_RAX-ARGOFFSET(%rsp) |
320 | movq $-ENOSYS,RAX-ARGOFFSET(%rsp) | 323 | movq $-ENOSYS,RAX-ARGOFFSET(%rsp) |
321 | jmp int_ret_from_sys_call | 324 | jmp int_ret_from_sys_call |
322 | 325 | ||
323 | ni_syscall: | ||
324 | movq %rax,%rdi | ||
325 | jmp sys32_ni_syscall | ||
326 | |||
327 | quiet_ni_syscall: | 326 | quiet_ni_syscall: |
328 | movq $-ENOSYS,%rax | 327 | movq $-ENOSYS,%rax |
329 | ret | 328 | ret |
@@ -370,10 +369,10 @@ ENTRY(ia32_ptregs_common) | |||
370 | RESTORE_REST | 369 | RESTORE_REST |
371 | jmp ia32_sysret /* misbalances the return cache */ | 370 | jmp ia32_sysret /* misbalances the return cache */ |
372 | CFI_ENDPROC | 371 | CFI_ENDPROC |
372 | END(ia32_ptregs_common) | ||
373 | 373 | ||
374 | .section .rodata,"a" | 374 | .section .rodata,"a" |
375 | .align 8 | 375 | .align 8 |
376 | .globl ia32_sys_call_table | ||
377 | ia32_sys_call_table: | 376 | ia32_sys_call_table: |
378 | .quad sys_restart_syscall | 377 | .quad sys_restart_syscall |
379 | .quad sys_exit | 378 | .quad sys_exit |