}
+
void show_trace(unsigned long * stack)
{
int i;
printk("\n");
}
+void show_traceX(void)
+{
+ unsigned long *addr;
+ __asm__ __volatile__ ("movl %%esp,%0" : "=r" (addr) : );
+ show_trace(addr);
+}
+
void show_stack(unsigned long *esp)
{
unsigned long *stack;
regs->xfs & 0xffff, regs->xgs & 0xffff, ss);
show_stack(®s->esp);
+ show_trace(®s->esp);
}
__asm__ __volatile__ ("movl %%cr2,%0" : "=r" (addr) : );
+// __sti(); // XXXX This may not be safe??? LDT issues???
+
perfc_incrc(page_faults);
if ( unlikely(addr >= LDT_VIRT_START) &&
if ( unlikely(p->mm.shadow_mode) &&
(addr < PAGE_OFFSET) && shadow_fault(addr, error_code) )
- return; /* Return TRUE if fault was handled. */
+ return; /* Returns TRUE if fault was handled. */
if ( unlikely(!(regs->xcs & 3)) )
goto fault_in_hypervisor;