diff options
Diffstat (limited to 'kernel/rcu/tree.c')
-rw-r--r-- | kernel/rcu/tree.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 054418d2d960..e5f30b364276 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c | |||
@@ -210,10 +210,9 @@ static long rcu_get_n_cbs_cpu(int cpu) | |||
210 | { | 210 | { |
211 | struct rcu_data *rdp = per_cpu_ptr(&rcu_data, cpu); | 211 | struct rcu_data *rdp = per_cpu_ptr(&rcu_data, cpu); |
212 | 212 | ||
213 | if (rcu_segcblist_is_enabled(&rdp->cblist) && | 213 | if (rcu_segcblist_is_enabled(&rdp->cblist)) |
214 | !rcu_segcblist_is_offloaded(&rdp->cblist)) /* Online normal CPU? */ | ||
215 | return rcu_segcblist_n_cbs(&rdp->cblist); | 214 | return rcu_segcblist_n_cbs(&rdp->cblist); |
216 | return rcu_get_n_cbs_nocb_cpu(rdp); /* Works for offline, too. */ | 215 | return 0; |
217 | } | 216 | } |
218 | 217 | ||
219 | void rcu_softirq_qs(void) | 218 | void rcu_softirq_qs(void) |
@@ -3181,6 +3180,7 @@ void rcutree_migrate_callbacks(int cpu) | |||
3181 | needwake = rcu_advance_cbs(my_rnp, rdp) || | 3180 | needwake = rcu_advance_cbs(my_rnp, rdp) || |
3182 | rcu_advance_cbs(my_rnp, my_rdp); | 3181 | rcu_advance_cbs(my_rnp, my_rdp); |
3183 | rcu_segcblist_merge(&my_rdp->cblist, &rdp->cblist); | 3182 | rcu_segcblist_merge(&my_rdp->cblist, &rdp->cblist); |
3183 | rcu_segcblist_disable(&rdp->cblist); | ||
3184 | WARN_ON_ONCE(rcu_segcblist_empty(&my_rdp->cblist) != | 3184 | WARN_ON_ONCE(rcu_segcblist_empty(&my_rdp->cblist) != |
3185 | !rcu_segcblist_n_cbs(&my_rdp->cblist)); | 3185 | !rcu_segcblist_n_cbs(&my_rdp->cblist)); |
3186 | if (rcu_segcblist_is_offloaded(&my_rdp->cblist)) { | 3186 | if (rcu_segcblist_is_offloaded(&my_rdp->cblist)) { |