diff options
| -rw-r--r-- | kernel/signal.c | 9 |
1 files changed, 0 insertions, 9 deletions
diff --git a/kernel/signal.c b/kernel/signal.c index 90e2efad33ae..2124ffadcfde 100644 --- a/kernel/signal.c +++ b/kernel/signal.c | |||
| @@ -2294,15 +2294,6 @@ int do_sigaction(int sig, struct k_sigaction *act, struct k_sigaction *oact) | |||
| 2294 | k = ¤t->sighand->action[sig-1]; | 2294 | k = ¤t->sighand->action[sig-1]; |
| 2295 | 2295 | ||
| 2296 | spin_lock_irq(¤t->sighand->siglock); | 2296 | spin_lock_irq(¤t->sighand->siglock); |
| 2297 | if (signal_pending(current)) { | ||
| 2298 | /* | ||
| 2299 | * If there might be a fatal signal pending on multiple | ||
| 2300 | * threads, make sure we take it before changing the action. | ||
| 2301 | */ | ||
| 2302 | spin_unlock_irq(¤t->sighand->siglock); | ||
| 2303 | return -ERESTARTNOINTR; | ||
| 2304 | } | ||
| 2305 | |||
| 2306 | if (oact) | 2297 | if (oact) |
| 2307 | *oact = *k; | 2298 | *oact = *k; |
| 2308 | 2299 | ||
