From 22f5991c85dec1281cce5c8df9ee92b43b1738c8 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Wed, 30 Jan 2008 13:31:23 +0100 Subject: 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 Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner --- arch/x86/mm/fault_64.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'arch/x86/mm') 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, tsk->thread.cr2 = address; tsk->thread.trap_no = 14; tsk->thread.error_code = error_code; - __die("Bad pagetable", regs, error_code); - oops_end(flags); - do_exit(SIGKILL); + if (__die("Bad pagetable", regs, error_code)) + regs = NULL; + oops_end(flags, regs, SIGKILL); } /* @@ -541,11 +541,11 @@ no_context: tsk->thread.cr2 = address; tsk->thread.trap_no = 14; tsk->thread.error_code = error_code; - __die("Oops", regs, error_code); + if (__die("Oops", regs, error_code)) + regs = NULL; /* Executive summary in case the body of the oops scrolled away */ printk(KERN_EMERG "CR2: %016lx\n", address); - oops_end(flags); - do_exit(SIGKILL); + oops_end(flags, regs, SIGKILL); /* * We ran out of memory, or some other thing happened to us that made -- cgit v1.2.2