diff options
author | Oleg Nesterov <oleg@redhat.com> | 2009-05-03 17:11:18 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-05-05 14:28:05 -0400 |
commit | 41c51c98f588edcdf6141cff1895df738e03ddd4 (patch) | |
tree | b33243575558927974e0f90735fac5224dd135cf /kernel/rcupreempt.c | |
parent | 05725f7eb4b8acb147c5fc7b91397b1f6bcab00d (diff) |
rcu: rcu_sched_grace_period(): kill the bogus flush_signals()
As a kernel thread, rcu_sched_grace_period() runs with all signals ignored.
It can never receive a signal even if it sleeps in TASK_INTERRUPTIBLE, it
needs the explicit allow_signal() to be visible for signals.
[ Impact: reduce kernel size, remove dead code ]
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Reviewed-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
LKML-Reference: <20090503211118.GA22973@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/rcupreempt.c')
-rw-r--r-- | kernel/rcupreempt.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/kernel/rcupreempt.c b/kernel/rcupreempt.c index ce97a4df64d3..beb0e659adcc 100644 --- a/kernel/rcupreempt.c +++ b/kernel/rcupreempt.c | |||
@@ -1356,17 +1356,11 @@ static int rcu_sched_grace_period(void *arg) | |||
1356 | 1356 | ||
1357 | rcu_ctrlblk.sched_sleep = rcu_sched_sleeping; | 1357 | rcu_ctrlblk.sched_sleep = rcu_sched_sleeping; |
1358 | spin_unlock_irqrestore(&rcu_ctrlblk.schedlock, flags); | 1358 | spin_unlock_irqrestore(&rcu_ctrlblk.schedlock, flags); |
1359 | ret = 0; | 1359 | ret = 0; /* unused */ |
1360 | __wait_event_interruptible(rcu_ctrlblk.sched_wq, | 1360 | __wait_event_interruptible(rcu_ctrlblk.sched_wq, |
1361 | rcu_ctrlblk.sched_sleep != rcu_sched_sleeping, | 1361 | rcu_ctrlblk.sched_sleep != rcu_sched_sleeping, |
1362 | ret); | 1362 | ret); |
1363 | 1363 | ||
1364 | /* | ||
1365 | * Signals would prevent us from sleeping, and we cannot | ||
1366 | * do much with them in any case. So flush them. | ||
1367 | */ | ||
1368 | if (ret) | ||
1369 | flush_signals(current); | ||
1370 | couldsleepnext = 0; | 1364 | couldsleepnext = 0; |
1371 | 1365 | ||
1372 | } while (!kthread_should_stop()); | 1366 | } while (!kthread_should_stop()); |