* are disabled). In such situations we can't do much that is safe. We try to
* print out some tracing and then we just spin.
*/
-void fatal_trap(int trapnr, const struct cpu_user_regs *regs)
+void fatal_trap(const struct cpu_user_regs *regs)
{
static DEFINE_PER_CPU(char, depth);
+ unsigned int trapnr = regs->entry_vector;
/* Set AC to reduce chance of further SMAP faults */
stac();
{
console_start_sync();
printk("Xen SM%cP violation\n", (pf_type == smep_fault) ? 'E' : 'A');
- fatal_trap(TRAP_page_fault, regs);
+ fatal_trap(regs);
}
if ( pf_type != real_fault )
console_start_sync();
printk("Early fatal page fault at %04x:%p (cr2=%p, ec=%04x)\n",
regs->cs, _p(regs->eip), _p(cr2), regs->error_code);
- fatal_trap(TRAP_page_fault, regs);
+ fatal_trap(regs);
}
}
default: /* 'fatal' */
console_force_unlock();
printk("\n\nNMI - PCI system error (SERR)\n");
- fatal_trap(TRAP_nmi, regs);
+ fatal_trap(regs);
}
}
default: /* 'fatal' */
console_force_unlock();
printk("\n\nNMI - I/O ERROR\n");
- fatal_trap(TRAP_nmi, regs);
+ fatal_trap(regs);
}
outb((inb(0x61) & 0x0f) | 0x08, 0x61); /* clear-and-disable IOCK */
console_force_unlock();
printk("Uhhuh. NMI received for unknown reason %02x.\n", reason);
printk("Do you have a strange power saving mode enabled?\n");
- fatal_trap(TRAP_nmi, regs);
+ fatal_trap(regs);
}
}
void show_execution_state(const struct cpu_user_regs *regs);
#define dump_execution_state() run_in_exception_handler(show_execution_state)
void show_page_walk(unsigned long addr);
-void noreturn fatal_trap(int trapnr, const struct cpu_user_regs *regs);
+void noreturn fatal_trap(const struct cpu_user_regs *regs);
void compat_show_guest_stack(struct vcpu *v,
const struct cpu_user_regs *regs, int lines);