|
@@ -600,7 +600,8 @@ void die(const char * str, struct pt_regs * regs, long err)
|
|
oops_end(flags, regs, SIGSEGV);
|
|
oops_end(flags, regs, SIGSEGV);
|
|
}
|
|
}
|
|
|
|
|
|
-void __kprobes die_nmi(char *str, struct pt_regs *regs, int do_panic)
|
|
|
|
|
|
+notrace __kprobes void
|
|
|
|
+die_nmi(char *str, struct pt_regs *regs, int do_panic)
|
|
{
|
|
{
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
|
|
|
|
@@ -772,7 +773,7 @@ asmlinkage void __kprobes do_general_protection(struct pt_regs * regs,
|
|
die("general protection fault", regs, error_code);
|
|
die("general protection fault", regs, error_code);
|
|
}
|
|
}
|
|
|
|
|
|
-static __kprobes void
|
|
|
|
|
|
+static notrace __kprobes void
|
|
mem_parity_error(unsigned char reason, struct pt_regs * regs)
|
|
mem_parity_error(unsigned char reason, struct pt_regs * regs)
|
|
{
|
|
{
|
|
printk(KERN_EMERG "Uhhuh. NMI received for unknown reason %02x.\n",
|
|
printk(KERN_EMERG "Uhhuh. NMI received for unknown reason %02x.\n",
|
|
@@ -796,7 +797,7 @@ mem_parity_error(unsigned char reason, struct pt_regs * regs)
|
|
outb(reason, 0x61);
|
|
outb(reason, 0x61);
|
|
}
|
|
}
|
|
|
|
|
|
-static __kprobes void
|
|
|
|
|
|
+static notrace __kprobes void
|
|
io_check_error(unsigned char reason, struct pt_regs * regs)
|
|
io_check_error(unsigned char reason, struct pt_regs * regs)
|
|
{
|
|
{
|
|
printk("NMI: IOCK error (debug interrupt?)\n");
|
|
printk("NMI: IOCK error (debug interrupt?)\n");
|
|
@@ -810,7 +811,7 @@ io_check_error(unsigned char reason, struct pt_regs * regs)
|
|
outb(reason, 0x61);
|
|
outb(reason, 0x61);
|
|
}
|
|
}
|
|
|
|
|
|
-static __kprobes void
|
|
|
|
|
|
+static notrace __kprobes void
|
|
unknown_nmi_error(unsigned char reason, struct pt_regs * regs)
|
|
unknown_nmi_error(unsigned char reason, struct pt_regs * regs)
|
|
{
|
|
{
|
|
if (notify_die(DIE_NMIUNKNOWN, "nmi", regs, reason, 2, SIGINT) == NOTIFY_STOP)
|
|
if (notify_die(DIE_NMIUNKNOWN, "nmi", regs, reason, 2, SIGINT) == NOTIFY_STOP)
|
|
@@ -827,7 +828,7 @@ unknown_nmi_error(unsigned char reason, struct pt_regs * regs)
|
|
|
|
|
|
/* Runs on IST stack. This code must keep interrupts off all the time.
|
|
/* Runs on IST stack. This code must keep interrupts off all the time.
|
|
Nested NMIs are prevented by the CPU. */
|
|
Nested NMIs are prevented by the CPU. */
|
|
-asmlinkage __kprobes void default_do_nmi(struct pt_regs *regs)
|
|
|
|
|
|
+asmlinkage notrace __kprobes void default_do_nmi(struct pt_regs *regs)
|
|
{
|
|
{
|
|
unsigned char reason = 0;
|
|
unsigned char reason = 0;
|
|
int cpu;
|
|
int cpu;
|