Merge branch 'for-4.3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
Pull workqueue fixlet from Tejun Heo: "Single patch to make delayed work always be queued on the local CPU" This is not actually something we should guarantee, but it's something we by accident have historically done, and at least one call site has grown to depend on it. I'm going to fix that known broken callsite, but in the meantime this makes the accidental behavior be explicit, just in case there are other cases that might depend on it. * 'for-4.3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: workqueue: make sure delayed work run in local cpu
This commit is contained in:
commit
995e2fe9a4
|
@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue