aboutsummaryrefslogtreecommitdiffstats
path: root/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/entry.S
diff options
context:
space:
mode:
Diffstat (limited to 'xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/entry.S')
-rw-r--r--xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/entry.S22
1 files changed, 15 insertions, 7 deletions
diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/entry.S b/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/entry.S
index 0525e2976e..20ae79e50e 100644
--- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/entry.S
+++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/entry.S
@@ -373,13 +373,19 @@ critical_fixup_table:
ENTRY(failsafe_callback)
1: pop %ds
2: pop %es
-3: iret
+3: pop %fs
+4: pop %gs
+5: iret
.section .fixup,"ax"; \
-4: movl $0,(%esp); \
+6: movl $0,(%esp); \
jmp 1b; \
-5: movl $0,(%esp); \
+7: movl $0,(%esp); \
jmp 2b; \
-6: pushl %ss; \
+8: movl $0,(%esp); \
+ jmp 3b; \
+9: movl $0,(%esp); \
+ jmp 4b; \
+10: pushl %ss; \
popl %ds; \
pushl %ss; \
popl %es; \
@@ -388,9 +394,11 @@ ENTRY(failsafe_callback)
.previous; \
.section __ex_table,"a";\
.align 4; \
- .long 1b,4b; \
- .long 2b,5b; \
- .long 3b,6b; \
+ .long 1b,6b; \
+ .long 2b,7b; \
+ .long 3b,8b; \
+ .long 4b,9b; \
+ .long 5b,10b; \
.previous
ENTRY(coprocessor_error)