From: Trammell Hudson Date: Wed, 22 Oct 2008 00:53:58 +0000 (-0500) Subject: Detect recursive page faults and halt X-Git-Tag: 1.0^2~28 X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios-OLD.git;a=commitdiff_plain;h=6412a23da90ae75906e946febb6f49df8a33d0bd Detect recursive page faults and halt --- diff --git a/kitten/arch/x86_64/kernel/interrupts.c b/kitten/arch/x86_64/kernel/interrupts.c index 7441829..19ba726 100644 --- a/kitten/arch/x86_64/kernel/interrupts.c +++ b/kitten/arch/x86_64/kernel/interrupts.c @@ -136,7 +136,12 @@ do_general_protection(struct pt_regs *regs, unsigned int vector) void do_page_fault(struct pt_regs *regs, unsigned int vector) { - printk("Page Fault Exception\n"); + printk("Page Fault Exception (regs %p)\n", regs ); + + static uint8_t recursive_fault; + if( recursive_fault++ ) + panic( "Recursive page fault! Halt and catch fire!" ); + show_registers(regs); while (1) {} }