Rename send_signal send_signal_locked and make to make
it usable outside of signal.c.

Signed-off-by: "Eric W. Biederman" <ebied...@xmission.com>
---
 include/linux/signal.h |  2 ++
 kernel/signal.c        | 24 ++++++++++++------------
 2 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/include/linux/signal.h b/include/linux/signal.h
index a6db6f2ae113..55605bdf5ce9 100644
--- a/include/linux/signal.h
+++ b/include/linux/signal.h
@@ -283,6 +283,8 @@ extern int do_send_sig_info(int sig, struct kernel_siginfo 
*info,
 extern int group_send_sig_info(int sig, struct kernel_siginfo *info,
                               struct task_struct *p, enum pid_type type);
 extern int __group_send_sig_info(int, struct kernel_siginfo *, struct 
task_struct *);
+extern int send_signal_locked(int sig, struct kernel_siginfo *info,
+                             struct task_struct *p, enum pid_type type);
 extern int sigprocmask(int, sigset_t *, sigset_t *);
 extern void set_current_blocked(sigset_t *);
 extern void __set_current_blocked(const sigset_t *);
diff --git a/kernel/signal.c b/kernel/signal.c
index 30cd1ca43bcd..b0403197b0ad 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -1071,8 +1071,8 @@ static inline bool legacy_queue(struct sigpending 
*signals, int sig)
        return (sig < SIGRTMIN) && sigismember(&signals->signal, sig);
 }
 
-static int __send_signal(int sig, struct kernel_siginfo *info, struct 
task_struct *t,
-                       enum pid_type type, bool force)
+static int __send_signal_locked(int sig, struct kernel_siginfo *info,
+                               struct task_struct *t, enum pid_type type, bool 
force)
 {
        struct sigpending *pending;
        struct sigqueue *q;
@@ -1212,8 +1212,8 @@ static inline bool has_si_pid_and_uid(struct 
kernel_siginfo *info)
        return ret;
 }
 
-static int send_signal(int sig, struct kernel_siginfo *info, struct 
task_struct *t,
-                       enum pid_type type)
+int send_signal_locked(int sig, struct kernel_siginfo *info,
+                      struct task_struct *t, enum pid_type type)
 {
        /* Should SIGKILL or SIGSTOP be received by a pid namespace init? */
        bool force = false;
@@ -1245,7 +1245,7 @@ static int send_signal(int sig, struct kernel_siginfo 
*info, struct task_struct
                        force = true;
                }
        }
-       return __send_signal(sig, info, t, type, force);
+       return __send_signal_locked(sig, info, t, type, force);
 }
 
 static void print_fatal_signal(int signr)
@@ -1284,7 +1284,7 @@ __setup("print-fatal-signals=", 
setup_print_fatal_signals);
 int
 __group_send_sig_info(int sig, struct kernel_siginfo *info, struct task_struct 
*p)
 {
-       return send_signal(sig, info, p, PIDTYPE_TGID);
+       return send_signal_locked(sig, info, p, PIDTYPE_TGID);
 }
 
 int do_send_sig_info(int sig, struct kernel_siginfo *info, struct task_struct 
*p,
@@ -1294,7 +1294,7 @@ int do_send_sig_info(int sig, struct kernel_siginfo 
*info, struct task_struct *p
        int ret = -ESRCH;
 
        if (lock_task_sighand(p, &flags)) {
-               ret = send_signal(sig, info, p, type);
+               ret = send_signal_locked(sig, info, p, type);
                unlock_task_sighand(p, &flags);
        }
 
@@ -1347,7 +1347,7 @@ force_sig_info_to_task(struct kernel_siginfo *info, 
struct task_struct *t,
        if (action->sa.sa_handler == SIG_DFL &&
            (!t->ptrace || (handler == HANDLER_EXIT)))
                t->signal->flags &= ~SIGNAL_UNKILLABLE;
-       ret = send_signal(sig, info, t, PIDTYPE_PID);
+       ret = send_signal_locked(sig, info, t, PIDTYPE_PID);
        spin_unlock_irqrestore(&t->sighand->siglock, flags);
 
        return ret;
@@ -1567,7 +1567,7 @@ int kill_pid_usb_asyncio(int sig, int errno, sigval_t 
addr,
 
        if (sig) {
                if (lock_task_sighand(p, &flags)) {
-                       ret = __send_signal(sig, &info, p, PIDTYPE_TGID, false);
+                       ret = __send_signal_locked(sig, &info, p, PIDTYPE_TGID, 
false);
                        unlock_task_sighand(p, &flags);
                } else
                        ret = -ESRCH;
@@ -2103,7 +2103,7 @@ bool do_notify_parent(struct task_struct *tsk, int sig)
         * parent's namespaces.
         */
        if (valid_signal(sig) && sig)
-               __send_signal(sig, &info, tsk->parent, PIDTYPE_TGID, false);
+               __send_signal_locked(sig, &info, tsk->parent, PIDTYPE_TGID, 
false);
        __wake_up_parent(tsk, tsk->parent);
        spin_unlock_irqrestore(&psig->siglock, flags);
 
@@ -2601,7 +2601,7 @@ static int ptrace_signal(int signr, kernel_siginfo_t 
*info, enum pid_type type)
        /* If the (new) signal is now blocked, requeue it.  */
        if (sigismember(&current->blocked, signr) ||
            fatal_signal_pending(current)) {
-               send_signal(signr, info, current, type);
+               send_signal_locked(signr, info, current, type);
                signr = 0;
        }
 
@@ -4793,7 +4793,7 @@ void kdb_send_sig(struct task_struct *t, int sig)
                           "the deadlock.\n");
                return;
        }
-       ret = send_signal(sig, SEND_SIG_PRIV, t, PIDTYPE_PID);
+       ret = send_signal_locked(sig, SEND_SIG_PRIV, t, PIDTYPE_PID);
        spin_unlock(&t->sighand->siglock);
        if (ret)
                kdb_printf("Fail to deliver Signal %d to process %d.\n",
-- 
2.35.3


_______________________________________________
linux-um mailing list
linux-um@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-um

Reply via email to