aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/timer.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/timer.c')
-rw-r--r--kernel/timer.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/kernel/timer.c b/kernel/timer.c
index 6663a87f7304..8ad384253ef2 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -1651,8 +1651,8 @@ static void __devinit migrate_timers(int cpu)
1651 new_base = get_cpu_var(tvec_bases); 1651 new_base = get_cpu_var(tvec_bases);
1652 1652
1653 local_irq_disable(); 1653 local_irq_disable();
1654 spin_lock(&new_base->lock); 1654 double_spin_lock(&new_base->lock, &old_base->lock,
1655 spin_lock(&old_base->lock); 1655 smp_processor_id() < cpu);
1656 1656
1657 BUG_ON(old_base->running_timer); 1657 BUG_ON(old_base->running_timer);
1658 1658
@@ -1665,8 +1665,8 @@ static void __devinit migrate_timers(int cpu)
1665 migrate_timer_list(new_base, old_base->tv5.vec + i); 1665 migrate_timer_list(new_base, old_base->tv5.vec + i);
1666 } 1666 }
1667 1667
1668 spin_unlock(&old_base->lock); 1668 double_spin_unlock(&new_base->lock, &old_base->lock,
1669 spin_unlock(&new_base->lock); 1669 smp_processor_id() < cpu);
1670 local_irq_enable(); 1670 local_irq_enable();
1671 put_cpu_var(tvec_bases); 1671 put_cpu_var(tvec_bases);
1672} 1672}