summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kernel/rcu/tiny.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/rcu/tiny.c b/kernel/rcu/tiny.c
index a77853b73bfe..1745d30e170e 100644
--- a/kernel/rcu/tiny.c
+++ b/kernel/rcu/tiny.c
@@ -78,8 +78,12 @@ void rcu_qs(void)
*/
void rcu_check_callbacks(int user)
{
- if (user)
+ if (user) {
rcu_qs();
+ } else if (rcu_ctrlblk.donetail != rcu_ctrlblk.curtail) {
+ set_tsk_need_resched(current);
+ set_preempt_need_resched();
+ }
}
/* Invoke the RCU callbacks whose grace period has elapsed. */