summaryrefslogtreecommitdiff
path: root/arch/um/include
diff options
context:
space:
mode:
authorRichard Weinberger <richard@nod.at>2013-08-18 13:30:08 +0200
committerRichard Weinberger <richard@nod.at>2013-09-07 10:56:58 +0200
commit91d44ff860a9e9c0db81a89cbc24fa31fbd8e6d3 (patch)
treebb14601ab3afbcec3cb8d7d0f207d09cfc792268 /arch/um/include
parentbc1d72e73be63a7c4a07eb10cf51e91f20bf6076 (diff)
um: Cleanup SIGTERM handling
Richard reported that some UML processes survive if the UML main process receives a SIGTERM. This issue was caused by a wrongly placed signal(SIGTERM, SIG_DFL) in init_new_thread_signals(). It disabled the UML exit handler accidently for some processes. The correct solution is to disable the fatal handler for all UML helper threads/processes. Such that last_ditch_exit() does not get called multiple times and all processes can exit due to SIGTERM. Reported-and-tested-by: Richard W.M. Jones <rjones@redhat.com> Signed-off-by: Richard Weinberger <richard@nod.at>
Diffstat (limited to 'arch/um/include')
-rw-r--r--arch/um/include/shared/os.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/um/include/shared/os.h b/arch/um/include/shared/os.h
index e98303925cc5..021104d98cb3 100644
--- a/arch/um/include/shared/os.h
+++ b/arch/um/include/shared/os.h
@@ -235,6 +235,7 @@ extern void setup_machinename(char *machine_out);
extern void setup_hostinfo(char *buf, int len);
extern void os_dump_core(void) __attribute__ ((noreturn));
extern void um_early_printk(const char *s, unsigned int n);
+extern void os_fix_helper_signals(void);
/* time.c */
extern void idle_sleep(unsigned long long nsecs);