aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/mm
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2008-01-30 07:31:23 -0500
committerIngo Molnar <mingo@elte.hu>2008-01-30 07:31:23 -0500
commit22f5991c85dec1281cce5c8df9ee92b43b1738c8 (patch)
tree9a0814a5b3c37b3752ee7dfcc6f6b2b6793dfe91 /arch/x86/mm
parentd88879b2d0225da3ba460bbdb8361bb049653671 (diff)
x86-64: honor notify_die() returning NOTIFY_STOP
This requires making die() return a value, making its callers honor this (and be prepared that it may return), and making oops_end() have two additional parameters. Signed-off-by: Jan Beulich <jbeulich@novell.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/mm')
-rw-r--r--arch/x86/mm/fault_64.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/x86/mm/fault_64.c b/arch/x86/mm/fault_64.c
index 162050d4e5a3..121c7bda6297 100644
--- a/arch/x86/mm/fault_64.c
+++ b/arch/x86/mm/fault_64.c
@@ -227,9 +227,9 @@ static noinline void pgtable_bad(unsigned long address, struct pt_regs *regs,
227 tsk->thread.cr2 = address; 227 tsk->thread.cr2 = address;
228 tsk->thread.trap_no = 14; 228 tsk->thread.trap_no = 14;
229 tsk->thread.error_code = error_code; 229 tsk->thread.error_code = error_code;
230 __die("Bad pagetable", regs, error_code); 230 if (__die("Bad pagetable", regs, error_code))
231 oops_end(flags); 231 regs = NULL;
232 do_exit(SIGKILL); 232 oops_end(flags, regs, SIGKILL);
233} 233}
234 234
235/* 235/*
@@ -541,11 +541,11 @@ no_context:
541 tsk->thread.cr2 = address; 541 tsk->thread.cr2 = address;
542 tsk->thread.trap_no = 14; 542 tsk->thread.trap_no = 14;
543 tsk->thread.error_code = error_code; 543 tsk->thread.error_code = error_code;
544 __die("Oops", regs, error_code); 544 if (__die("Oops", regs, error_code))
545 regs = NULL;
545 /* Executive summary in case the body of the oops scrolled away */ 546 /* Executive summary in case the body of the oops scrolled away */
546 printk(KERN_EMERG "CR2: %016lx\n", address); 547 printk(KERN_EMERG "CR2: %016lx\n", address);
547 oops_end(flags); 548 oops_end(flags, regs, SIGKILL);
548 do_exit(SIGKILL);
549 549
550/* 550/*
551 * We ran out of memory, or some other thing happened to us that made 551 * We ran out of memory, or some other thing happened to us that made