summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2002-12-14 19:44:20 -0800
committerIngo Molnar <mingo@elte.hu>2002-12-14 19:44:20 -0800
commitb9daa0066d792983da59154af3ae486eff9b9aa1 (patch)
treec571dbad3d99584edbfdcc5dbe9d751f0c224c28 /kernel
parentf3ce0064cbb6bbada20942729aa439cfd33da301 (diff)
[PATCH] threaded coredumps, tcore-fixes-2.5.51-A0
This fixes one more threaded-coredumps detail reported by the glibc people: all threads taken down by the coredump code should report the proper exit code. We can do this rather easily via the group_exit mechanism. 'Other' threads used to report SIGKILL, which was highly confusing as the shell often displayed the 'Killed' message instead of a 'Segmentation fault' message. Another missing bit was the 0x80 bit set in the exit status for all threads, if the coredump was successful. (it's safe to set this bit in ->sig->group_exit_code in an unlocked way because all threads are artificially descheduled by the coredump code.)
Diffstat (limited to 'kernel')
-rw-r--r--kernel/signal.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/signal.c b/kernel/signal.c
index c3e602f2822a..d617fddfb60a 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -1313,7 +1313,7 @@ int get_signal_to_deliver(siginfo_t *info, struct pt_regs *regs)
case SIGQUIT: case SIGILL: case SIGTRAP:
case SIGABRT: case SIGFPE: case SIGSEGV:
case SIGBUS: case SIGSYS: case SIGXCPU: case SIGXFSZ:
- if (do_coredump(signr, regs))
+ if (do_coredump(signr, exit_code, regs))
exit_code |= 0x80;
/* FALLTHRU */