diff options
-rw-r--r-- | kernel/rcutiny_plugin.h | 7 | ||||
-rw-r--r-- | kernel/rcutorture.c | 3 | ||||
-rw-r--r-- | kernel/rcutree.c | 7 | ||||
-rw-r--r-- | kernel/rcutree_plugin.h | 14 |
4 files changed, 18 insertions, 13 deletions
diff --git a/kernel/rcutiny_plugin.h b/kernel/rcutiny_plugin.h index 116725b5edfb..918fd1e8509c 100644 --- a/kernel/rcutiny_plugin.h +++ b/kernel/rcutiny_plugin.h | |||
@@ -350,8 +350,9 @@ static int rcu_initiate_boost(void) | |||
350 | rcu_preempt_ctrlblk.boost_tasks = | 350 | rcu_preempt_ctrlblk.boost_tasks = |
351 | rcu_preempt_ctrlblk.gp_tasks; | 351 | rcu_preempt_ctrlblk.gp_tasks; |
352 | invoke_rcu_callbacks(); | 352 | invoke_rcu_callbacks(); |
353 | } else | 353 | } else { |
354 | RCU_TRACE(rcu_initiate_boost_trace()); | 354 | RCU_TRACE(rcu_initiate_boost_trace()); |
355 | } | ||
355 | return 1; | 356 | return 1; |
356 | } | 357 | } |
357 | 358 | ||
@@ -778,9 +779,9 @@ void synchronize_rcu_expedited(void) | |||
778 | rpcp->exp_tasks = NULL; | 779 | rpcp->exp_tasks = NULL; |
779 | 780 | ||
780 | /* Wait for tail of ->blkd_tasks list to drain. */ | 781 | /* Wait for tail of ->blkd_tasks list to drain. */ |
781 | if (!rcu_preempted_readers_exp()) | 782 | if (!rcu_preempted_readers_exp()) { |
782 | local_irq_restore(flags); | 783 | local_irq_restore(flags); |
783 | else { | 784 | } else { |
784 | rcu_initiate_boost(); | 785 | rcu_initiate_boost(); |
785 | local_irq_restore(flags); | 786 | local_irq_restore(flags); |
786 | wait_event(sync_rcu_preempt_exp_wq, | 787 | wait_event(sync_rcu_preempt_exp_wq, |
diff --git a/kernel/rcutorture.c b/kernel/rcutorture.c index c279ee920947..155fb129b641 100644 --- a/kernel/rcutorture.c +++ b/kernel/rcutorture.c | |||
@@ -408,8 +408,9 @@ rcu_torture_cb(struct rcu_head *p) | |||
408 | if (++rp->rtort_pipe_count >= RCU_TORTURE_PIPE_LEN) { | 408 | if (++rp->rtort_pipe_count >= RCU_TORTURE_PIPE_LEN) { |
409 | rp->rtort_mbtest = 0; | 409 | rp->rtort_mbtest = 0; |
410 | rcu_torture_free(rp); | 410 | rcu_torture_free(rp); |
411 | } else | 411 | } else { |
412 | cur_ops->deferred_free(rp); | 412 | cur_ops->deferred_free(rp); |
413 | } | ||
413 | } | 414 | } |
414 | 415 | ||
415 | static int rcu_no_completed(void) | 416 | static int rcu_no_completed(void) |
diff --git a/kernel/rcutree.c b/kernel/rcutree.c index 117218a43724..f280e542e3e9 100644 --- a/kernel/rcutree.c +++ b/kernel/rcutree.c | |||
@@ -892,8 +892,9 @@ static void __note_new_gpnum(struct rcu_state *rsp, struct rcu_node *rnp, struct | |||
892 | if (rnp->qsmask & rdp->grpmask) { | 892 | if (rnp->qsmask & rdp->grpmask) { |
893 | rdp->qs_pending = 1; | 893 | rdp->qs_pending = 1; |
894 | rdp->passed_quiesce = 0; | 894 | rdp->passed_quiesce = 0; |
895 | } else | 895 | } else { |
896 | rdp->qs_pending = 0; | 896 | rdp->qs_pending = 0; |
897 | } | ||
897 | zero_cpu_stall_ticks(rdp); | 898 | zero_cpu_stall_ticks(rdp); |
898 | } | 899 | } |
899 | } | 900 | } |
@@ -2130,9 +2131,9 @@ void synchronize_sched_expedited(void) | |||
2130 | put_online_cpus(); | 2131 | put_online_cpus(); |
2131 | 2132 | ||
2132 | /* No joy, try again later. Or just synchronize_sched(). */ | 2133 | /* No joy, try again later. Or just synchronize_sched(). */ |
2133 | if (trycount++ < 10) | 2134 | if (trycount++ < 10) { |
2134 | udelay(trycount * num_online_cpus()); | 2135 | udelay(trycount * num_online_cpus()); |
2135 | else { | 2136 | } else { |
2136 | synchronize_sched(); | 2137 | synchronize_sched(); |
2137 | return; | 2138 | return; |
2138 | } | 2139 | } |
diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h index a9194d5606c4..7f3244c0df01 100644 --- a/kernel/rcutree_plugin.h +++ b/kernel/rcutree_plugin.h | |||
@@ -390,8 +390,9 @@ void rcu_read_unlock_special(struct task_struct *t) | |||
390 | rnp->grphi, | 390 | rnp->grphi, |
391 | !!rnp->gp_tasks); | 391 | !!rnp->gp_tasks); |
392 | rcu_report_unblock_qs_rnp(rnp, flags); | 392 | rcu_report_unblock_qs_rnp(rnp, flags); |
393 | } else | 393 | } else { |
394 | raw_spin_unlock_irqrestore(&rnp->lock, flags); | 394 | raw_spin_unlock_irqrestore(&rnp->lock, flags); |
395 | } | ||
395 | 396 | ||
396 | #ifdef CONFIG_RCU_BOOST | 397 | #ifdef CONFIG_RCU_BOOST |
397 | /* Unboost if we were boosted. */ | 398 | /* Unboost if we were boosted. */ |
@@ -757,9 +758,9 @@ sync_rcu_preempt_exp_init(struct rcu_state *rsp, struct rcu_node *rnp) | |||
757 | int must_wait = 0; | 758 | int must_wait = 0; |
758 | 759 | ||
759 | raw_spin_lock_irqsave(&rnp->lock, flags); | 760 | raw_spin_lock_irqsave(&rnp->lock, flags); |
760 | if (list_empty(&rnp->blkd_tasks)) | 761 | if (list_empty(&rnp->blkd_tasks)) { |
761 | raw_spin_unlock_irqrestore(&rnp->lock, flags); | 762 | raw_spin_unlock_irqrestore(&rnp->lock, flags); |
762 | else { | 763 | } else { |
763 | rnp->exp_tasks = rnp->blkd_tasks.next; | 764 | rnp->exp_tasks = rnp->blkd_tasks.next; |
764 | rcu_initiate_boost(rnp, flags); /* releases rnp->lock */ | 765 | rcu_initiate_boost(rnp, flags); /* releases rnp->lock */ |
765 | must_wait = 1; | 766 | must_wait = 1; |
@@ -803,9 +804,9 @@ void synchronize_rcu_expedited(void) | |||
803 | * expedited grace period for us, just leave. | 804 | * expedited grace period for us, just leave. |
804 | */ | 805 | */ |
805 | while (!mutex_trylock(&sync_rcu_preempt_exp_mutex)) { | 806 | while (!mutex_trylock(&sync_rcu_preempt_exp_mutex)) { |
806 | if (trycount++ < 10) | 807 | if (trycount++ < 10) { |
807 | udelay(trycount * num_online_cpus()); | 808 | udelay(trycount * num_online_cpus()); |
808 | else { | 809 | } else { |
809 | synchronize_rcu(); | 810 | synchronize_rcu(); |
810 | return; | 811 | return; |
811 | } | 812 | } |
@@ -2093,8 +2094,9 @@ static void rcu_prepare_for_idle(int cpu) | |||
2093 | if (rcu_cpu_has_callbacks(cpu)) { | 2094 | if (rcu_cpu_has_callbacks(cpu)) { |
2094 | trace_rcu_prep_idle("More callbacks"); | 2095 | trace_rcu_prep_idle("More callbacks"); |
2095 | invoke_rcu_core(); | 2096 | invoke_rcu_core(); |
2096 | } else | 2097 | } else { |
2097 | trace_rcu_prep_idle("Callbacks drained"); | 2098 | trace_rcu_prep_idle("Callbacks drained"); |
2099 | } | ||
2098 | } | 2100 | } |
2099 | 2101 | ||
2100 | /* | 2102 | /* |