summaryrefslogtreecommitdiffstats
path: root/kernel/workqueue.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2015-10-20 10:16:46 +0200
committerIngo Molnar <mingo@kernel.org>2015-10-20 10:16:46 +0200
commita1a2ab2ff7040bdc9a31bfe7173913971f7d723b (patch)
treea5b448aaedafafca6974710b7d64074ed964fe24 /kernel/workqueue.c
parent00eb4bab69db349c3bdc7e0b0f7e9070dafea58c (diff)
parent7379047d5585187d1288486d4627873170d0005a (diff)
downloadlinux-a1a2ab2ff7040bdc9a31bfe7173913971f7d723b.tar.gz
linux-a1a2ab2ff7040bdc9a31bfe7173913971f7d723b.tar.bz2
linux-a1a2ab2ff7040bdc9a31bfe7173913971f7d723b.zip
Merge tag 'v4.3-rc6' into locking/core, to pick up fixes before applying new changes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/workqueue.c')
-rw-r--r--kernel/workqueue.c8
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);
}
/**