diff options
Diffstat (limited to 'arch/i386/kernel/entry.S')
-rw-r--r-- | arch/i386/kernel/entry.S | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/i386/kernel/entry.S b/arch/i386/kernel/entry.S index ba22ec8fab54..dede506e5bd0 100644 --- a/arch/i386/kernel/entry.S +++ b/arch/i386/kernel/entry.S | |||
@@ -950,6 +950,19 @@ ENTRY(arch_unwind_init_running) | |||
950 | ENDPROC(arch_unwind_init_running) | 950 | ENDPROC(arch_unwind_init_running) |
951 | #endif | 951 | #endif |
952 | 952 | ||
953 | ENTRY(kernel_thread_helper) | ||
954 | pushl $0 # fake return address for unwinder | ||
955 | CFI_STARTPROC | ||
956 | movl %edx,%eax | ||
957 | push %edx | ||
958 | CFI_ADJUST_CFA_OFFSET 4 | ||
959 | call *%ebx | ||
960 | push %eax | ||
961 | CFI_ADJUST_CFA_OFFSET 4 | ||
962 | call do_exit | ||
963 | CFI_ENDPROC | ||
964 | ENDPROC(kernel_thread_helper) | ||
965 | |||
953 | .section .rodata,"a" | 966 | .section .rodata,"a" |
954 | #include "syscall_table.S" | 967 | #include "syscall_table.S" |
955 | 968 | ||