aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcutree_plugin.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/rcutree_plugin.h')
-rw-r--r--kernel/rcutree_plugin.h13
1 files changed, 8 insertions, 5 deletions
diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h
index ad61da79b311..d01e26df55a1 100644
--- a/kernel/rcutree_plugin.h
+++ b/kernel/rcutree_plugin.h
@@ -2110,6 +2110,8 @@ static void rcu_cleanup_after_idle(int cpu)
2110 */ 2110 */
2111static void rcu_prepare_for_idle(int cpu) 2111static void rcu_prepare_for_idle(int cpu)
2112{ 2112{
2113 struct timer_list *tp;
2114
2113 /* 2115 /*
2114 * If this is an idle re-entry, for example, due to use of 2116 * If this is an idle re-entry, for example, due to use of
2115 * RCU_NONIDLE() or the new idle-loop tracing API within the idle 2117 * RCU_NONIDLE() or the new idle-loop tracing API within the idle
@@ -2121,9 +2123,10 @@ static void rcu_prepare_for_idle(int cpu)
2121 if (!per_cpu(rcu_idle_first_pass, cpu) && 2123 if (!per_cpu(rcu_idle_first_pass, cpu) &&
2122 (per_cpu(rcu_nonlazy_posted, cpu) == 2124 (per_cpu(rcu_nonlazy_posted, cpu) ==
2123 per_cpu(rcu_nonlazy_posted_snap, cpu))) { 2125 per_cpu(rcu_nonlazy_posted_snap, cpu))) {
2124 if (rcu_cpu_has_callbacks(cpu)) 2126 if (rcu_cpu_has_callbacks(cpu)) {
2125 mod_timer(&per_cpu(rcu_idle_gp_timer, cpu), 2127 tp = &per_cpu(rcu_idle_gp_timer, cpu);
2126 per_cpu(rcu_idle_gp_timer_expires, cpu)); 2128 mod_timer_pinned(tp, per_cpu(rcu_idle_gp_timer_expires, cpu));
2129 }
2127 return; 2130 return;
2128 } 2131 }
2129 per_cpu(rcu_idle_first_pass, cpu) = 0; 2132 per_cpu(rcu_idle_first_pass, cpu) = 0;
@@ -2167,8 +2170,8 @@ static void rcu_prepare_for_idle(int cpu)
2167 else 2170 else
2168 per_cpu(rcu_idle_gp_timer_expires, cpu) = 2171 per_cpu(rcu_idle_gp_timer_expires, cpu) =
2169 jiffies + RCU_IDLE_LAZY_GP_DELAY; 2172 jiffies + RCU_IDLE_LAZY_GP_DELAY;
2170 mod_timer(&per_cpu(rcu_idle_gp_timer, cpu), 2173 tp = &per_cpu(rcu_idle_gp_timer, cpu);
2171 per_cpu(rcu_idle_gp_timer_expires, cpu)); 2174 mod_timer_pinned(tp, per_cpu(rcu_idle_gp_timer_expires, cpu));
2172 per_cpu(rcu_nonlazy_posted_snap, cpu) = 2175 per_cpu(rcu_nonlazy_posted_snap, cpu) =
2173 per_cpu(rcu_nonlazy_posted, cpu); 2176 per_cpu(rcu_nonlazy_posted, cpu);
2174 return; /* Nothing more to do immediately. */ 2177 return; /* Nothing more to do immediately. */