diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-05-15 17:05:17 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-05-15 17:05:17 -0400 |
commit | cc51bf6e6d8b03bd459818492e0bc3bef09dcd74 (patch) | |
tree | 1df4cddf95a656e829242dfb89f29cf22259ca70 /kernel/timer.c | |
parent | 37cae5e24981f4619372e6a29456d34e4cbdc5e2 (diff) | |
parent | b4f711ee03d28f776fd2324fd0bd999cc428e4d2 (diff) |
Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull timer fixes from Thomas Gleixner:
- Cure for not using zalloc in the first place, which leads to random
crashes with CPUMASK_OFF_STACK.
- Revert a user space visible change which broke udev
- Add a missing cpu_online early return introduced by the new full
dyntick conversions
- Plug a long standing race in the timer wheel cpu hotplug code.
Sigh...
- Cleanup NOHZ per cpu data on cpu down to prevent stale data on cpu
up.
* 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
time: Revert ALWAYS_USE_PERSISTENT_CLOCK compile time optimizaitons
timer: Don't reinitialize the cpu base lock during CPU_UP_PREPARE
tick: Don't invoke tick_nohz_stop_sched_tick() if the cpu is offline
tick: Cleanup NOHZ per cpu data on cpu down
tick: Use zalloc_cpumask_var for allocating offstack cpumasks
Diffstat (limited to 'kernel/timer.c')
-rw-r--r-- | kernel/timer.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/timer.c b/kernel/timer.c index a860bba34412..15ffdb3f1948 100644 --- a/kernel/timer.c +++ b/kernel/timer.c | |||
@@ -1539,12 +1539,12 @@ static int __cpuinit init_timers_cpu(int cpu) | |||
1539 | boot_done = 1; | 1539 | boot_done = 1; |
1540 | base = &boot_tvec_bases; | 1540 | base = &boot_tvec_bases; |
1541 | } | 1541 | } |
1542 | spin_lock_init(&base->lock); | ||
1542 | tvec_base_done[cpu] = 1; | 1543 | tvec_base_done[cpu] = 1; |
1543 | } else { | 1544 | } else { |
1544 | base = per_cpu(tvec_bases, cpu); | 1545 | base = per_cpu(tvec_bases, cpu); |
1545 | } | 1546 | } |
1546 | 1547 | ||
1547 | spin_lock_init(&base->lock); | ||
1548 | 1548 | ||
1549 | for (j = 0; j < TVN_SIZE; j++) { | 1549 | for (j = 0; j < TVN_SIZE; j++) { |
1550 | INIT_LIST_HEAD(base->tv5.vec + j); | 1550 | INIT_LIST_HEAD(base->tv5.vec + j); |