The patch titled uml: signal initialization cleanup has been added to the -mm tree. Its filename is uml-signal-initialization-cleanup.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: uml: signal initialization cleanup From: Jeff Dike <jdike@xxxxxxxxxxx> It turns out that init_new_thread_signals is always called with altstack == 1, so we can eliminate the parameter. Signed-off-by: Jeff Dike <jdike@xxxxxxxxxxx> Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@xxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- arch/um/include/os.h | 2 +- arch/um/kernel/skas/process_kern.c | 2 +- arch/um/kernel/tt/exec_kern.c | 2 +- arch/um/kernel/tt/process_kern.c | 2 +- arch/um/os-Linux/process.c | 19 +++++++++---------- arch/um/os-Linux/skas/process.c | 2 +- 6 files changed, 14 insertions(+), 15 deletions(-) diff -puN arch/um/include/os.h~uml-signal-initialization-cleanup arch/um/include/os.h --- a/arch/um/include/os.h~uml-signal-initialization-cleanup +++ a/arch/um/include/os.h @@ -199,7 +199,7 @@ extern int os_getpid(void); extern int os_getpgrp(void); extern void init_new_thread_stack(void *sig_stack, void (*usr1_handler)(int)); -extern void init_new_thread_signals(int altstack); +extern void init_new_thread_signals(void); extern int run_kernel_thread(int (*fn)(void *), void *arg, void **jmp_ptr); extern int os_map_memory(void *virt, int fd, unsigned long long off, diff -puN arch/um/kernel/skas/process_kern.c~uml-signal-initialization-cleanup arch/um/kernel/skas/process_kern.c --- a/arch/um/kernel/skas/process_kern.c~uml-signal-initialization-cleanup +++ a/arch/um/kernel/skas/process_kern.c @@ -177,7 +177,7 @@ int start_uml_skas(void) if(proc_mm) userspace_pid[0] = start_userspace(0); - init_new_thread_signals(1); + init_new_thread_signals(); init_task.thread.request.u.thread.proc = start_kernel_proc; init_task.thread.request.u.thread.arg = NULL; diff -puN arch/um/kernel/tt/exec_kern.c~uml-signal-initialization-cleanup arch/um/kernel/tt/exec_kern.c --- a/arch/um/kernel/tt/exec_kern.c~uml-signal-initialization-cleanup +++ a/arch/um/kernel/tt/exec_kern.c @@ -21,7 +21,7 @@ static int exec_tramp(void *sig_stack) { init_new_thread_stack(sig_stack, NULL); - init_new_thread_signals(1); + init_new_thread_signals(); os_stop_process(os_getpid()); return(0); } diff -puN arch/um/kernel/tt/process_kern.c~uml-signal-initialization-cleanup arch/um/kernel/tt/process_kern.c --- a/arch/um/kernel/tt/process_kern.c~uml-signal-initialization-cleanup +++ a/arch/um/kernel/tt/process_kern.c @@ -142,7 +142,7 @@ static void new_thread_handler(int sig) schedule_tail(current->thread.prev_sched); current->thread.prev_sched = NULL; - init_new_thread_signals(1); + init_new_thread_signals(); enable_timer(); free_page(current->thread.temp_stack); set_cmdline("(kernel thread)"); diff -puN arch/um/os-Linux/process.c~uml-signal-initialization-cleanup arch/um/os-Linux/process.c --- a/arch/um/os-Linux/process.c~uml-signal-initialization-cleanup +++ a/arch/um/os-Linux/process.c @@ -250,25 +250,24 @@ void init_new_thread_stack(void *sig_sta if(usr1_handler) set_handler(SIGUSR1, usr1_handler, flags, -1); } -void init_new_thread_signals(int altstack) +void init_new_thread_signals(void) { - int flags = altstack ? SA_ONSTACK : 0; - - set_handler(SIGSEGV, (__sighandler_t) sig_handler, flags, + set_handler(SIGSEGV, (__sighandler_t) sig_handler, SA_ONSTACK, SIGUSR1, SIGIO, SIGWINCH, SIGALRM, SIGVTALRM, -1); - set_handler(SIGTRAP, (__sighandler_t) sig_handler, flags, + set_handler(SIGTRAP, (__sighandler_t) sig_handler, SA_ONSTACK, SIGUSR1, SIGIO, SIGWINCH, SIGALRM, SIGVTALRM, -1); - set_handler(SIGFPE, (__sighandler_t) sig_handler, flags, + set_handler(SIGFPE, (__sighandler_t) sig_handler, SA_ONSTACK, SIGUSR1, SIGIO, SIGWINCH, SIGALRM, SIGVTALRM, -1); - set_handler(SIGILL, (__sighandler_t) sig_handler, flags, + set_handler(SIGILL, (__sighandler_t) sig_handler, SA_ONSTACK, SIGUSR1, SIGIO, SIGWINCH, SIGALRM, SIGVTALRM, -1); - set_handler(SIGBUS, (__sighandler_t) sig_handler, flags, + set_handler(SIGBUS, (__sighandler_t) sig_handler, SA_ONSTACK, SIGUSR1, SIGIO, SIGWINCH, SIGALRM, SIGVTALRM, -1); set_handler(SIGUSR2, (__sighandler_t) sig_handler, - flags, SIGUSR1, SIGIO, SIGWINCH, SIGALRM, SIGVTALRM, -1); + SA_ONSTACK, SIGUSR1, SIGIO, SIGWINCH, SIGALRM, SIGVTALRM, + -1); signal(SIGHUP, SIG_IGN); - init_irq_signals(altstack); + init_irq_signals(1); } int run_kernel_thread(int (*fn)(void *), void *arg, void **jmp_ptr) diff -puN arch/um/os-Linux/skas/process.c~uml-signal-initialization-cleanup arch/um/os-Linux/skas/process.c --- a/arch/um/os-Linux/skas/process.c~uml-signal-initialization-cleanup +++ a/arch/um/os-Linux/skas/process.c @@ -159,7 +159,7 @@ static int userspace_tramp(void *stack) ptrace(PTRACE_TRACEME, 0, 0, 0); - init_new_thread_signals(1); + init_new_thread_signals(); enable_timer(); if(!proc_mm){ _ Patches currently in -mm which might be from jdike@xxxxxxxxxxx are uml-clean-up-address-space-limits-code.patch uml-timer-initialization-cleanup.patch uml-remove-some-useless-exports.patch uml-fix-static-binary-segfault.patch uml-remove-useless-declaration.patch uml-signal-initialization-cleanup.patch uml-timer-handler-tidying.patch uml-ifdef-a-mode-specific-function.patch uml-mark-forward_interrupts-as-being-mode-specific.patch uml-remove-spinlock-wrapper-functions.patch uml-remove-os_isatty.patch uml-fix-exitcall-ordering-bug.patch uml-make-some-symbols-static.patch uml-remove-syscall-debugging.patch uml-move-_kernc-files.patch uml-formatting-fixes.patch uml-add-some-eintr-protection.patch uml-remove-unused-variable.patch uml-make-mconsole-version-requests-happen-in-a-process.patch uml-remove-pte_mkexec.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html