aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/time/tick-sched.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/time/tick-sched.c')
-rw-r--r--kernel/time/tick-sched.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index 6558b7ac112d..3d63944a3eca 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -224,13 +224,15 @@ static DEFINE_PER_CPU(struct irq_work, nohz_full_kick_work) = {
224}; 224};
225 225
226/* 226/*
227 * Kick the current CPU if it's full dynticks in order to force it to 227 * Kick the CPU if it's full dynticks in order to force it to
228 * re-evaluate its dependency on the tick and restart it if necessary. 228 * re-evaluate its dependency on the tick and restart it if necessary.
229 */ 229 */
230void tick_nohz_full_kick(void) 230void tick_nohz_full_kick_cpu(int cpu)
231{ 231{
232 if (tick_nohz_full_cpu(smp_processor_id())) 232 if (!tick_nohz_full_cpu(cpu))
233 irq_work_queue(&__get_cpu_var(nohz_full_kick_work)); 233 return;
234
235 irq_work_queue_on(&per_cpu(nohz_full_kick_work, cpu), cpu);
234} 236}
235 237
236static void nohz_full_kick_ipi(void *info) 238static void nohz_full_kick_ipi(void *info)