diff options
Diffstat (limited to 'arch/x86/kernel/doublefault_32.c')
-rw-r--r-- | arch/x86/kernel/doublefault_32.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/arch/x86/kernel/doublefault_32.c b/arch/x86/kernel/doublefault_32.c index 40978af630e..a47798b59f0 100644 --- a/arch/x86/kernel/doublefault_32.c +++ b/arch/x86/kernel/doublefault_32.c | |||
@@ -17,7 +17,7 @@ static unsigned long doublefault_stack[DOUBLEFAULT_STACKSIZE]; | |||
17 | 17 | ||
18 | static void doublefault_fn(void) | 18 | static void doublefault_fn(void) |
19 | { | 19 | { |
20 | struct Xgt_desc_struct gdt_desc = {0, 0}; | 20 | struct desc_ptr gdt_desc = {0, 0}; |
21 | unsigned long gdt, tss; | 21 | unsigned long gdt, tss; |
22 | 22 | ||
23 | store_gdt(&gdt_desc); | 23 | store_gdt(&gdt_desc); |
@@ -33,14 +33,15 @@ static void doublefault_fn(void) | |||
33 | printk(KERN_EMERG "double fault, tss at %08lx\n", tss); | 33 | printk(KERN_EMERG "double fault, tss at %08lx\n", tss); |
34 | 34 | ||
35 | if (ptr_ok(tss)) { | 35 | if (ptr_ok(tss)) { |
36 | struct i386_hw_tss *t = (struct i386_hw_tss *)tss; | 36 | struct x86_hw_tss *t = (struct x86_hw_tss *)tss; |
37 | 37 | ||
38 | printk(KERN_EMERG "eip = %08lx, esp = %08lx\n", t->eip, t->esp); | 38 | printk(KERN_EMERG "eip = %08lx, esp = %08lx\n", |
39 | t->ip, t->sp); | ||
39 | 40 | ||
40 | printk(KERN_EMERG "eax = %08lx, ebx = %08lx, ecx = %08lx, edx = %08lx\n", | 41 | printk(KERN_EMERG "eax = %08lx, ebx = %08lx, ecx = %08lx, edx = %08lx\n", |
41 | t->eax, t->ebx, t->ecx, t->edx); | 42 | t->ax, t->bx, t->cx, t->dx); |
42 | printk(KERN_EMERG "esi = %08lx, edi = %08lx\n", | 43 | printk(KERN_EMERG "esi = %08lx, edi = %08lx\n", |
43 | t->esi, t->edi); | 44 | t->si, t->di); |
44 | } | 45 | } |
45 | } | 46 | } |
46 | 47 | ||
@@ -50,15 +51,15 @@ static void doublefault_fn(void) | |||
50 | 51 | ||
51 | struct tss_struct doublefault_tss __cacheline_aligned = { | 52 | struct tss_struct doublefault_tss __cacheline_aligned = { |
52 | .x86_tss = { | 53 | .x86_tss = { |
53 | .esp0 = STACK_START, | 54 | .sp0 = STACK_START, |
54 | .ss0 = __KERNEL_DS, | 55 | .ss0 = __KERNEL_DS, |
55 | .ldt = 0, | 56 | .ldt = 0, |
56 | .io_bitmap_base = INVALID_IO_BITMAP_OFFSET, | 57 | .io_bitmap_base = INVALID_IO_BITMAP_OFFSET, |
57 | 58 | ||
58 | .eip = (unsigned long) doublefault_fn, | 59 | .ip = (unsigned long) doublefault_fn, |
59 | /* 0x2 bit is always set */ | 60 | /* 0x2 bit is always set */ |
60 | .eflags = X86_EFLAGS_SF | 0x2, | 61 | .flags = X86_EFLAGS_SF | 0x2, |
61 | .esp = STACK_START, | 62 | .sp = STACK_START, |
62 | .es = __USER_DS, | 63 | .es = __USER_DS, |
63 | .cs = __KERNEL_CS, | 64 | .cs = __KERNEL_CS, |
64 | .ss = __KERNEL_DS, | 65 | .ss = __KERNEL_DS, |