|
@@ -1458,13 +1458,13 @@ static void __queue_delayed_work(int cpu, struct workqueue_struct *wq,
|
|
|
timer_stats_timer_set_start_info(&dwork->timer);
|
|
|
|
|
|
dwork->wq = wq;
|
|
|
+ /* timer isn't guaranteed to run in this cpu, record earlier */
|
|
|
+ if (cpu == WORK_CPU_UNBOUND)
|
|
|
+ cpu = raw_smp_processor_id();
|
|
|
dwork->cpu = cpu;
|
|
|
timer->expires = jiffies + delay;
|
|
|
|
|
|
- if (unlikely(cpu != WORK_CPU_UNBOUND))
|
|
|
- add_timer_on(timer, cpu);
|
|
|
- else
|
|
|
- add_timer(timer);
|
|
|
+ add_timer_on(timer, cpu);
|
|
|
}
|
|
|
|
|
|
/**
|