Merge branch 'x86/debug' into x86/irq
authorIngo Molnar <mingo@elte.hu>
Fri, 28 Nov 2008 14:00:37 +0000 (15:00 +0100)
committerIngo Molnar <mingo@elte.hu>
Fri, 28 Nov 2008 14:00:48 +0000 (15:00 +0100)
We merge this branch because x86/debug touches code that we started
cleaning up in x86/irq. The two branches started out independent,
but as unexpected amount of activity went into x86/irq, they became
dependent. Resolve that by this cross-merge.

1  2 
arch/x86/Kconfig
arch/x86/kernel/entry_32.S
arch/x86/kernel/entry_64.S

Simple merge
Simple merge
index 08c0c9777a091bb37c616103d1ab1a69172e922b,4a16bf31c78353452514e526d66169555ddaa5c4..e41734a537bd9f21f33116abd332423e15d01955
@@@ -373,15 -255,17 +373,17 @@@ ENTRY(ret_from_fork
        call schedule_tail
        GET_THREAD_INFO(%rcx)
        testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT),TI_flags(%rcx)
+       CFI_REMEMBER_STATE
        jnz rff_trace
 -rff_action:   
 +rff_action:
        RESTORE_REST
        testl $3,CS-ARGOFFSET(%rsp)     # from kernel_thread?
        je   int_ret_from_sys_call
        testl $_TIF_IA32,TI_flags(%rcx)
        jnz  int_ret_from_sys_call
 -      RESTORE_TOP_OF_STACK %rdi,ARGOFFSET
 +      RESTORE_TOP_OF_STACK %rdi, -ARGOFFSET
        jmp ret_from_sys_call
+       CFI_RESTORE_STATE
  rff_trace:
        movq %rsp,%rdi
        call syscall_trace_leave
@@@ -1173,8 -1172,9 +1175,9 @@@ ENTRY(child_rip
        # exit
        mov %eax, %edi
        call do_exit
+       ud2                     # padding for call trace
        CFI_ENDPROC
 -ENDPROC(child_rip)
 +END(child_rip)
  
  /*
   * execve(). This function needs to use IRET, not SYSRET, to set up all state properly.