Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 63886
b: refs/heads/master
c: 3dab307
h: refs/heads/master
v: v3
  • Loading branch information
Chuck Ebbert authored and Linus Torvalds committed Aug 11, 2007
1 parent e4261c2 commit 94cd8fe
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 7 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 5fe4486c79cdc8dbbb2a9c3f884a5ad0830a5a23
refs/heads/master: 3dab307e527f2a9bbb4f9d00240374bb93d1945f
13 changes: 7 additions & 6 deletions trunk/arch/i386/kernel/doublefault.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
static unsigned long doublefault_stack[DOUBLEFAULT_STACKSIZE];
#define STACK_START (unsigned long)(doublefault_stack+DOUBLEFAULT_STACKSIZE)

#define ptr_ok(x) ((x) > PAGE_OFFSET && (x) < PAGE_OFFSET + 0x1000000)
#define ptr_ok(x) ((x) > PAGE_OFFSET && (x) < PAGE_OFFSET + MAXMEM)

static void doublefault_fn(void)
{
Expand All @@ -23,23 +23,23 @@ static void doublefault_fn(void)
store_gdt(&gdt_desc);
gdt = gdt_desc.address;

printk("double fault, gdt at %08lx [%d bytes]\n", gdt, gdt_desc.size);
printk(KERN_EMERG "PANIC: double fault, gdt at %08lx [%d bytes]\n", gdt, gdt_desc.size);

if (ptr_ok(gdt)) {
gdt += GDT_ENTRY_TSS << 3;
tss = *(u16 *)(gdt+2);
tss += *(u8 *)(gdt+4) << 16;
tss += *(u8 *)(gdt+7) << 24;
printk("double fault, tss at %08lx\n", tss);
printk(KERN_EMERG "double fault, tss at %08lx\n", tss);

if (ptr_ok(tss)) {
struct i386_hw_tss *t = (struct i386_hw_tss *)tss;

printk("eip = %08lx, esp = %08lx\n", t->eip, t->esp);
printk(KERN_EMERG "eip = %08lx, esp = %08lx\n", t->eip, t->esp);

printk("eax = %08lx, ebx = %08lx, ecx = %08lx, edx = %08lx\n",
printk(KERN_EMERG "eax = %08lx, ebx = %08lx, ecx = %08lx, edx = %08lx\n",
t->eax, t->ebx, t->ecx, t->edx);
printk("esi = %08lx, edi = %08lx\n",
printk(KERN_EMERG "esi = %08lx, edi = %08lx\n",
t->esi, t->edi);
}
}
Expand All @@ -63,6 +63,7 @@ struct tss_struct doublefault_tss __cacheline_aligned = {
.cs = __KERNEL_CS,
.ss = __KERNEL_DS,
.ds = __USER_DS,
.fs = __KERNEL_PERCPU,

.__cr3 = __pa(swapper_pg_dir)
}
Expand Down

0 comments on commit 94cd8fe

Please sign in to comment.