diff options
Diffstat (limited to 'arch/um/os-Linux/process.c')
| -rw-r--r-- | arch/um/os-Linux/process.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/arch/um/os-Linux/process.c b/arch/um/os-Linux/process.c index 3afde92ad2c0..ff203625a4bd 100644 --- a/arch/um/os-Linux/process.c +++ b/arch/um/os-Linux/process.c | |||
| @@ -246,7 +246,17 @@ void init_new_thread_stack(void *sig_stack, void (*usr1_handler)(int)) | |||
| 246 | set_sigstack(sig_stack, pages * page_size()); | 246 | set_sigstack(sig_stack, pages * page_size()); |
| 247 | flags = SA_ONSTACK; | 247 | flags = SA_ONSTACK; |
| 248 | } | 248 | } |
| 249 | if(usr1_handler) set_handler(SIGUSR1, usr1_handler, flags, -1); | 249 | if(usr1_handler){ |
| 250 | struct sigaction sa; | ||
| 251 | |||
| 252 | sa.sa_handler = usr1_handler; | ||
| 253 | sigemptyset(&sa.sa_mask); | ||
| 254 | sa.sa_flags = flags; | ||
| 255 | sa.sa_restorer = NULL; | ||
| 256 | if(sigaction(SIGUSR1, &sa, NULL) < 0) | ||
| 257 | panic("init_new_thread_stack - sigaction failed - " | ||
| 258 | "errno = %d\n", errno); | ||
| 259 | } | ||
| 250 | } | 260 | } |
| 251 | 261 | ||
| 252 | void init_new_thread_signals(void) | 262 | void init_new_thread_signals(void) |
