aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386/kernel/entry.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/i386/kernel/entry.S')
-rw-r--r--arch/i386/kernel/entry.S29
1 files changed, 29 insertions, 0 deletions
diff --git a/arch/i386/kernel/entry.S b/arch/i386/kernel/entry.S
index cfc683f153b9..e802f3cac7e3 100644
--- a/arch/i386/kernel/entry.S
+++ b/arch/i386/kernel/entry.S
@@ -663,6 +663,35 @@ ENTRY(spurious_interrupt_bug)
663 pushl $do_spurious_interrupt_bug 663 pushl $do_spurious_interrupt_bug
664 jmp error_code 664 jmp error_code
665 665
666#ifdef CONFIG_STACK_UNWIND
667ENTRY(arch_unwind_init_running)
668 movl 4(%esp), %edx
669 movl (%esp), %ecx
670 leal 4(%esp), %eax
671 movl %ebx, EBX(%edx)
672 xorl %ebx, %ebx
673 movl %ebx, ECX(%edx)
674 movl %ebx, EDX(%edx)
675 movl %esi, ESI(%edx)
676 movl %edi, EDI(%edx)
677 movl %ebp, EBP(%edx)
678 movl %ebx, EAX(%edx)
679 movl $__USER_DS, DS(%edx)
680 movl $__USER_DS, ES(%edx)
681 movl %ebx, ORIG_EAX(%edx)
682 movl %ecx, EIP(%edx)
683 movl 12(%esp), %ecx
684 movl $__KERNEL_CS, CS(%edx)
685 movl %ebx, EFLAGS(%edx)
686 movl %eax, OLDESP(%edx)
687 movl 8(%esp), %eax
688 movl %ecx, 8(%esp)
689 movl EBX(%edx), %ebx
690 movl $__KERNEL_DS, OLDSS(%edx)
691 jmpl *%eax
692ENDPROC(arch_unwind_init_running)
693#endif
694
666.section .rodata,"a" 695.section .rodata,"a"
667#include "syscall_table.S" 696#include "syscall_table.S"
668 697