From: Jeff Dike Dump core after a panic. This will provide better debugging information than is currently available. Signed-off-by: Jeff Dike Cc: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton --- arch/um/include/os.h | 1 + arch/um/kernel/um_arch.c | 2 +- arch/um/os-Linux/util.c | 6 ++++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff -puN arch/um/include/os.h~uml-dump-core-on-panic arch/um/include/os.h --- a/arch/um/include/os.h~uml-dump-core-on-panic +++ a/arch/um/include/os.h @@ -279,6 +279,7 @@ extern int raw(int fd); extern void setup_machinename(char *machine_out); extern void setup_hostinfo(char *buf, int len); extern int setjmp_wrapper(void (*proc)(void *, void *), ...); +extern void os_dump_core(void); /* time.c */ #define BILLION (1000 * 1000 * 1000) diff -puN arch/um/kernel/um_arch.c~uml-dump-core-on-panic arch/um/kernel/um_arch.c --- a/arch/um/kernel/um_arch.c~uml-dump-core-on-panic +++ a/arch/um/kernel/um_arch.c @@ -474,7 +474,7 @@ static int panic_exit(struct notifier_bl show_regs(&(current->thread.regs)); bust_spinlocks(0); uml_exitcode = 1; - machine_halt(); + os_dump_core(); return 0; } diff -puN arch/um/os-Linux/util.c~uml-dump-core-on-panic arch/um/os-Linux/util.c --- a/arch/um/os-Linux/util.c~uml-dump-core-on-panic +++ a/arch/um/os-Linux/util.c @@ -119,3 +119,9 @@ int setjmp_wrapper(void (*proc)(void *, va_end(args); return n; } + +void os_dump_core(void) +{ + signal(SIGSEGV, SIG_DFL); + abort(); +} _