diff options
Diffstat (limited to 'kernel/workqueue.c')
| -rw-r--r-- | kernel/workqueue.c | 8 | 
1 files changed, 4 insertions, 4 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index ca71582fcfab..bcb14cafe007 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -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);  }  /**  | 
