aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/um/include/os.h1
-rw-r--r--arch/um/kernel/um_arch.c2
-rw-r--r--arch/um/os-Linux/util.c6
3 files changed, 8 insertions, 1 deletions
diff --git a/arch/um/include/os.h b/arch/um/include/os.h
index b463170a530..901804db3c3 100644
--- a/arch/um/include/os.h
+++ b/arch/um/include/os.h
@@ -279,6 +279,7 @@ extern int raw(int fd);
279extern void setup_machinename(char *machine_out); 279extern void setup_machinename(char *machine_out);
280extern void setup_hostinfo(char *buf, int len); 280extern void setup_hostinfo(char *buf, int len);
281extern int setjmp_wrapper(void (*proc)(void *, void *), ...); 281extern int setjmp_wrapper(void (*proc)(void *, void *), ...);
282extern void os_dump_core(void);
282 283
283/* time.c */ 284/* time.c */
284#define BILLION (1000 * 1000 * 1000) 285#define BILLION (1000 * 1000 * 1000)
diff --git a/arch/um/kernel/um_arch.c b/arch/um/kernel/um_arch.c
index 9bf31533a8f..1cf954a47fd 100644
--- a/arch/um/kernel/um_arch.c
+++ b/arch/um/kernel/um_arch.c
@@ -474,7 +474,7 @@ static int panic_exit(struct notifier_block *self, unsigned long unused1,
474 show_regs(&(current->thread.regs)); 474 show_regs(&(current->thread.regs));
475 bust_spinlocks(0); 475 bust_spinlocks(0);
476 uml_exitcode = 1; 476 uml_exitcode = 1;
477 machine_halt(); 477 os_dump_core();
478 return 0; 478 return 0;
479} 479}
480 480
diff --git a/arch/um/os-Linux/util.c b/arch/um/os-Linux/util.c
index 48bc4927b99..c307a89ed25 100644
--- a/arch/um/os-Linux/util.c
+++ b/arch/um/os-Linux/util.c
@@ -119,3 +119,9 @@ int setjmp_wrapper(void (*proc)(void *, void *), ...)
119 va_end(args); 119 va_end(args);
120 return n; 120 return n;
121} 121}
122
123void os_dump_core(void)
124{
125 signal(SIGSEGV, SIG_DFL);
126 abort();
127}