]> err.no Git - linux-2.6/blobdiff - arch/x86/ia32/ia32entry.S
x86: printk kernel version in WARN_ON and other dump_stack users
[linux-2.6] / arch / x86 / ia32 / ia32entry.S
index 18b23181090808b953f91568d6183345b8028fd1..df588f0f76e1c9c3d8027a3baced0089de612832 100644 (file)
@@ -159,20 +159,16 @@ sysenter_do_call:
 
 sysenter_tracesys:
        CFI_RESTORE_STATE
+       xchgl   %r9d,%ebp
        SAVE_REST
        CLEAR_RREGS
+       movq    %r9,R9(%rsp)
        movq    $-ENOSYS,RAX(%rsp)      /* really needed? */
        movq    %rsp,%rdi        /* &pt_regs -> arg1 */
        call    syscall_trace_enter
        LOAD_ARGS32 ARGOFFSET  /* reload args from stack in case ptrace changed it */
        RESTORE_REST
-       movl    %ebp, %ebp
-       /* no need to do an access_ok check here because rbp has been
-          32bit zero extended */ 
-1:     movl    (%rbp),%r9d
-       .section __ex_table,"a"
-       .quad 1b,ia32_badarg
-       .previous
+       xchgl   %ebp,%r9d
        jmp     sysenter_do_call
        CFI_ENDPROC
 ENDPROC(ia32_sysenter_target)
@@ -262,20 +258,17 @@ cstar_do_call:
        
 cstar_tracesys:        
        CFI_RESTORE_STATE
+       xchgl %r9d,%ebp
        SAVE_REST
        CLEAR_RREGS
+       movq %r9,R9(%rsp)
        movq $-ENOSYS,RAX(%rsp) /* really needed? */
        movq %rsp,%rdi        /* &pt_regs -> arg1 */
        call syscall_trace_enter
        LOAD_ARGS32 ARGOFFSET  /* reload args from stack in case ptrace changed it */
        RESTORE_REST
+       xchgl %ebp,%r9d
        movl RSP-ARGOFFSET(%rsp), %r8d
-       /* no need to do an access_ok check here because r8 has been
-          32bit zero extended */ 
-1:     movl    (%r8),%r9d
-       .section __ex_table,"a"
-       .quad 1b,ia32_badarg
-       .previous
        jmp cstar_do_call
 END(ia32_cstar_target)