diff options
Diffstat (limited to 'kernel/signal.c')
-rw-r--r-- | kernel/signal.c | 7 |
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 | } |
3045 | EXPORT_SYMBOL(kernel_sigaction); | 3045 | EXPORT_SYMBOL(kernel_sigaction); |
3046 | 3046 | ||
3047 | void __weak sigaction_compat_abi(struct k_sigaction *act, | ||
3048 | struct k_sigaction *oact) | ||
3049 | { | ||
3050 | } | ||
3051 | |||
3047 | int do_sigaction(int sig, struct k_sigaction *act, struct k_sigaction *oact) | 3052 | int 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)); |