diff options
-rw-r--r-- | include/linux/sched.h | 1 | ||||
-rw-r--r-- | kernel/signal.c | 21 |
2 files changed, 8 insertions, 14 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h index b2d161d87db7..00e144117326 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -1689,7 +1689,6 @@ extern int send_sig_info(int, struct siginfo *, struct task_struct *); | |||
1689 | extern int force_sigsegv(int, struct task_struct *); | 1689 | extern int force_sigsegv(int, struct task_struct *); |
1690 | extern int force_sig_info(int, struct siginfo *, struct task_struct *); | 1690 | extern int force_sig_info(int, struct siginfo *, struct task_struct *); |
1691 | extern int __kill_pgrp_info(int sig, struct siginfo *info, struct pid *pgrp); | 1691 | extern int __kill_pgrp_info(int sig, struct siginfo *info, struct pid *pgrp); |
1692 | extern int kill_pgrp_info(int sig, struct siginfo *info, struct pid *pgrp); | ||
1693 | extern int kill_pid_info(int sig, struct siginfo *info, struct pid *pid); | 1692 | extern int kill_pid_info(int sig, struct siginfo *info, struct pid *pid); |
1694 | extern int kill_pid_info_as_uid(int, struct siginfo *, struct pid *, uid_t, uid_t, u32); | 1693 | extern int kill_pid_info_as_uid(int, struct siginfo *, struct pid *, uid_t, uid_t, u32); |
1695 | extern int kill_pgrp(struct pid *pid, int sig, int priv); | 1694 | extern int kill_pgrp(struct pid *pid, int sig, int priv); |
diff --git a/kernel/signal.c b/kernel/signal.c index a805c7417cd0..2c1f08defac2 100644 --- a/kernel/signal.c +++ b/kernel/signal.c | |||
@@ -1018,7 +1018,7 @@ int group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p) | |||
1018 | } | 1018 | } |
1019 | 1019 | ||
1020 | /* | 1020 | /* |
1021 | * kill_pgrp_info() sends a signal to a process group: this is what the tty | 1021 | * __kill_pgrp_info() sends a signal to a process group: this is what the tty |
1022 | * control characters do (^C, ^Z etc) | 1022 | * control characters do (^C, ^Z etc) |
1023 | */ | 1023 | */ |
1024 | 1024 | ||
@@ -1037,17 +1037,6 @@ int __kill_pgrp_info(int sig, struct siginfo *info, struct pid *pgrp) | |||
1037 | return success ? 0 : retval; | 1037 | return success ? 0 : retval; |
1038 | } | 1038 | } |
1039 | 1039 | ||
1040 | int kill_pgrp_info(int sig, struct siginfo *info, struct pid *pgrp) | ||
1041 | { | ||
1042 | int retval; | ||
1043 | |||
1044 | read_lock(&tasklist_lock); | ||
1045 | retval = __kill_pgrp_info(sig, info, pgrp); | ||
1046 | read_unlock(&tasklist_lock); | ||
1047 | |||
1048 | return retval; | ||
1049 | } | ||
1050 | |||
1051 | int kill_pid_info(int sig, struct siginfo *info, struct pid *pid) | 1040 | int kill_pid_info(int sig, struct siginfo *info, struct pid *pid) |
1052 | { | 1041 | { |
1053 | int error = -ESRCH; | 1042 | int error = -ESRCH; |
@@ -1236,7 +1225,13 @@ force_sigsegv(int sig, struct task_struct *p) | |||
1236 | 1225 | ||
1237 | int kill_pgrp(struct pid *pid, int sig, int priv) | 1226 | int kill_pgrp(struct pid *pid, int sig, int priv) |
1238 | { | 1227 | { |
1239 | return kill_pgrp_info(sig, __si_special(priv), pid); | 1228 | int ret; |
1229 | |||
1230 | read_lock(&tasklist_lock); | ||
1231 | ret = __kill_pgrp_info(sig, __si_special(priv), pid); | ||
1232 | read_unlock(&tasklist_lock); | ||
1233 | |||
1234 | return ret; | ||
1240 | } | 1235 | } |
1241 | EXPORT_SYMBOL(kill_pgrp); | 1236 | EXPORT_SYMBOL(kill_pgrp); |
1242 | 1237 | ||