aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/signal.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/signal.c')
-rw-r--r--kernel/signal.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/kernel/signal.c b/kernel/signal.c
index af21afc00d08..75761acc77cf 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -3044,6 +3044,11 @@ void kernel_sigaction(int sig, __sighandler_t action)
3044} 3044}
3045EXPORT_SYMBOL(kernel_sigaction); 3045EXPORT_SYMBOL(kernel_sigaction);
3046 3046
3047void __weak sigaction_compat_abi(struct k_sigaction *act,
3048 struct k_sigaction *oact)
3049{
3050}
3051
3047int do_sigaction(int sig, struct k_sigaction *act, struct k_sigaction *oact) 3052int do_sigaction(int sig, struct k_sigaction *act, struct k_sigaction *oact)
3048{ 3053{
3049 struct task_struct *p = current, *t; 3054 struct task_struct *p = current, *t;
@@ -3059,6 +3064,8 @@ int do_sigaction(int sig, struct k_sigaction *act, struct k_sigaction *oact)
3059 if (oact) 3064 if (oact)
3060 *oact = *k; 3065 *oact = *k;
3061 3066
3067 sigaction_compat_abi(act, oact);
3068
3062 if (act) { 3069 if (act) {
3063 sigdelsetmask(&act->sa.sa_mask, 3070 sigdelsetmask(&act->sa.sa_mask,
3064 sigmask(SIGKILL) | sigmask(SIGSTOP)); 3071 sigmask(SIGKILL) | sigmask(SIGSTOP));