summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorAlexander van Heukelum <heukelum@fastmail.fm>2008-10-22 14:00:14 +0400
committerIngo Molnar <mingo@elte.hu>2008-10-22 16:00:26 +0400
commit871d3779cba18b028e34d0d2f6cc6caae76a97b6 (patch)
tree858df7bc1f66d47bb6969af31f6c843eb7e361a5 /arch
parente06ca430c3d0fddbd1c901ab3fb3e1f0bc8a786b (diff)
downloadlinux-871d3779cba18b028e34d0d2f6cc6caae76a97b6.tar.xz
i386, dumpstack: unify die()
Make i386's die() equal to x86_64's version. Whitespace-only changes on x86_64, to make it equal to i386's version. (user_mode and user_mode_vm are equal on x86_64.) Signed-off-by: Alexander van Heukelum <heukelum@fastmail.fm> Acked-by: Neil Horman <nhorman@tuxdriver.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kernel/dumpstack_32.c10
-rw-r--r--arch/x86/kernel/dumpstack_64.c6
2 files changed, 8 insertions, 8 deletions
diff --git a/arch/x86/kernel/dumpstack_32.c b/arch/x86/kernel/dumpstack_32.c
index e91ae34f9684..f2046c5752d0 100644
--- a/arch/x86/kernel/dumpstack_32.c
+++ b/arch/x86/kernel/dumpstack_32.c
@@ -378,15 +378,11 @@ void die(const char *str, struct pt_regs *regs, long err)
unsigned long flags = oops_begin();
int sig = SIGSEGV;
- if (die_nest_count < 3) {
+ if (!user_mode_vm(regs))
report_bug(regs->ip, regs);
- if (__die(str, regs, err))
- sig = 0;
- } else {
- printk(KERN_EMERG "Recursive die() failure, output suppressed\n");
- }
-
+ if (__die(str, regs, err))
+ sig = 0;
oops_end(flags, regs, sig);
}
diff --git a/arch/x86/kernel/dumpstack_64.c b/arch/x86/kernel/dumpstack_64.c
index 831e1e159cb4..28c67aae5562 100644
--- a/arch/x86/kernel/dumpstack_64.c
+++ b/arch/x86/kernel/dumpstack_64.c
@@ -506,12 +506,16 @@ int __kprobes __die(const char *str, struct pt_regs *regs, long err)
return 0;
}
+/*
+ * This is gone through when something in the kernel has done something bad
+ * and is about to be terminated:
+ */
void die(const char *str, struct pt_regs *regs, long err)
{
unsigned long flags = oops_begin();
int sig = SIGSEGV;
- if (!user_mode(regs))
+ if (!user_mode_vm(regs))
report_bug(regs->ip, regs);
if (__die(str, regs, err))