diff options
Diffstat (limited to 'kernel/time/tick-sched.c')
-rw-r--r-- | kernel/time/tick-sched.c | 10 |
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 | */ |
230 | void tick_nohz_full_kick(void) | 230 | void 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 | ||
236 | static void nohz_full_kick_ipi(void *info) | 238 | static void nohz_full_kick_ipi(void *info) |