aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcutree.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/rcutree.c')
-rw-r--r--kernel/rcutree.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/rcutree.c b/kernel/rcutree.c
index c0ed3765ec39..4ec4b14cfba6 100644
--- a/kernel/rcutree.c
+++ b/kernel/rcutree.c
@@ -1403,7 +1403,10 @@ static void rcu_do_batch(struct rcu_state *rsp, struct rcu_data *rdp)
1403 debug_rcu_head_unqueue(list); 1403 debug_rcu_head_unqueue(list);
1404 __rcu_reclaim(rsp->name, list); 1404 __rcu_reclaim(rsp->name, list);
1405 list = next; 1405 list = next;
1406 if (++count >= bl) 1406 /* Stop only if limit reached and CPU has something to do. */
1407 if (++count >= bl &&
1408 (need_resched() ||
1409 (!is_idle_task(current) && !rcu_is_callbacks_kthread())))
1407 break; 1410 break;
1408 } 1411 }
1409 1412