signals: change wait_for_helper() to use kernel_sigaction()
authorOleg Nesterov <[email protected]>
Fri, 6 Jun 2014 21:37:02 +0000 (14:37 -0700)
committerLinus Torvalds <[email protected]>
Fri, 6 Jun 2014 23:08:12 +0000 (16:08 -0700)
Now that we have kernel_sigaction() we can change wait_for_helper() to
use it and cleans up the code a bit.

Signed-off-by: Oleg Nesterov <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Al Viro <[email protected]>
Cc: David Woodhouse <[email protected]>
Cc: Frederic Weisbecker <[email protected]>
Cc: Geert Uytterhoeven <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Mathieu Desnoyers <[email protected]>
Cc: Richard Weinberger <[email protected]>
Cc: Steven Rostedt <[email protected]>
Cc: Tejun Heo <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
kernel/kmod.c

index 0ac67a5861c5c66697c3f705c790f1faf70fc348..8637e041a24722b7245f5a5cf24fa7dd71dce001 100644 (file)
@@ -285,10 +285,7 @@ static int wait_for_helper(void *data)
        pid_t pid;
 
        /* If SIGCLD is ignored sys_wait4 won't populate the status. */
-       spin_lock_irq(&current->sighand->siglock);
-       current->sighand->action[SIGCHLD-1].sa.sa_handler = SIG_DFL;
-       spin_unlock_irq(&current->sighand->siglock);
-
+       kernel_sigaction(SIGCHLD, SIG_DFL);
        pid = kernel_thread(____call_usermodehelper, sub_info, SIGCHLD);
        if (pid < 0) {
                sub_info->retval = pid;