diff options
Diffstat (limited to 'kernel/rcu/tiny.c')
| -rw-r--r-- | kernel/rcu/tiny.c | 14 |
1 files changed, 1 insertions, 13 deletions
diff --git a/kernel/rcu/tiny.c b/kernel/rcu/tiny.c index cc9ceca7bde1..069742d61c68 100644 --- a/kernel/rcu/tiny.c +++ b/kernel/rcu/tiny.c | |||
| @@ -103,8 +103,7 @@ EXPORT_SYMBOL(__rcu_is_watching); | |||
| 103 | static int rcu_qsctr_help(struct rcu_ctrlblk *rcp) | 103 | static int rcu_qsctr_help(struct rcu_ctrlblk *rcp) |
| 104 | { | 104 | { |
| 105 | RCU_TRACE(reset_cpu_stall_ticks(rcp)); | 105 | RCU_TRACE(reset_cpu_stall_ticks(rcp)); |
| 106 | if (rcp->rcucblist != NULL && | 106 | if (rcp->donetail != rcp->curtail) { |
| 107 | rcp->donetail != rcp->curtail) { | ||
| 108 | rcp->donetail = rcp->curtail; | 107 | rcp->donetail = rcp->curtail; |
| 109 | return 1; | 108 | return 1; |
| 110 | } | 109 | } |
| @@ -169,17 +168,6 @@ static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp) | |||
| 169 | unsigned long flags; | 168 | unsigned long flags; |
| 170 | RCU_TRACE(int cb_count = 0); | 169 | RCU_TRACE(int cb_count = 0); |
| 171 | 170 | ||
| 172 | /* If no RCU callbacks ready to invoke, just return. */ | ||
| 173 | if (&rcp->rcucblist == rcp->donetail) { | ||
| 174 | RCU_TRACE(trace_rcu_batch_start(rcp->name, 0, 0, -1)); | ||
| 175 | RCU_TRACE(trace_rcu_batch_end(rcp->name, 0, | ||
| 176 | !!ACCESS_ONCE(rcp->rcucblist), | ||
| 177 | need_resched(), | ||
| 178 | is_idle_task(current), | ||
| 179 | false)); | ||
| 180 | return; | ||
| 181 | } | ||
| 182 | |||
| 183 | /* Move the ready-to-invoke callbacks to a local list. */ | 171 | /* Move the ready-to-invoke callbacks to a local list. */ |
| 184 | local_irq_save(flags); | 172 | local_irq_save(flags); |
| 185 | RCU_TRACE(trace_rcu_batch_start(rcp->name, 0, rcp->qlen, -1)); | 173 | RCU_TRACE(trace_rcu_batch_start(rcp->name, 0, rcp->qlen, -1)); |
