diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/hrtimer.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c index 8f7001c97e06..9c2bfa841281 100644 --- a/kernel/hrtimer.c +++ b/kernel/hrtimer.c | |||
@@ -1504,6 +1504,11 @@ static void __cpuinit init_hrtimers_cpu(int cpu) | |||
1504 | 1504 | ||
1505 | #ifdef CONFIG_HOTPLUG_CPU | 1505 | #ifdef CONFIG_HOTPLUG_CPU |
1506 | 1506 | ||
1507 | static void tickle_timers(void *arg) | ||
1508 | { | ||
1509 | hrtimer_peek_ahead_timers(); | ||
1510 | } | ||
1511 | |||
1507 | static void migrate_hrtimer_list(struct hrtimer_clock_base *old_base, | 1512 | static void migrate_hrtimer_list(struct hrtimer_clock_base *old_base, |
1508 | struct hrtimer_clock_base *new_base) | 1513 | struct hrtimer_clock_base *new_base) |
1509 | { | 1514 | { |
@@ -1539,7 +1544,7 @@ static void migrate_hrtimer_list(struct hrtimer_clock_base *old_base, | |||
1539 | } | 1544 | } |
1540 | } | 1545 | } |
1541 | 1546 | ||
1542 | static int migrate_hrtimers(int scpu) | 1547 | static void migrate_hrtimers(int scpu) |
1543 | { | 1548 | { |
1544 | struct hrtimer_cpu_base *old_base, *new_base; | 1549 | struct hrtimer_cpu_base *old_base, *new_base; |
1545 | int dcpu, i; | 1550 | int dcpu, i; |
@@ -1567,12 +1572,7 @@ static int migrate_hrtimers(int scpu) | |||
1567 | spin_unlock_irq(&new_base->lock); | 1572 | spin_unlock_irq(&new_base->lock); |
1568 | put_cpu_var(hrtimer_bases); | 1573 | put_cpu_var(hrtimer_bases); |
1569 | 1574 | ||
1570 | return dcpu; | 1575 | smp_call_function_single(dcpu, tickle_timers, NULL, 0); |
1571 | } | ||
1572 | |||
1573 | static void tickle_timers(void *arg) | ||
1574 | { | ||
1575 | hrtimer_peek_ahead_timers(); | ||
1576 | } | 1576 | } |
1577 | 1577 | ||
1578 | #endif /* CONFIG_HOTPLUG_CPU */ | 1578 | #endif /* CONFIG_HOTPLUG_CPU */ |
@@ -1593,11 +1593,8 @@ static int __cpuinit hrtimer_cpu_notify(struct notifier_block *self, | |||
1593 | case CPU_DEAD: | 1593 | case CPU_DEAD: |
1594 | case CPU_DEAD_FROZEN: | 1594 | case CPU_DEAD_FROZEN: |
1595 | { | 1595 | { |
1596 | int dcpu; | ||
1597 | |||
1598 | clockevents_notify(CLOCK_EVT_NOTIFY_CPU_DEAD, &scpu); | 1596 | clockevents_notify(CLOCK_EVT_NOTIFY_CPU_DEAD, &scpu); |
1599 | dcpu = migrate_hrtimers(scpu); | 1597 | migrate_hrtimers(scpu); |
1600 | smp_call_function_single(dcpu, tickle_timers, NULL, 0); | ||
1601 | break; | 1598 | break; |
1602 | } | 1599 | } |
1603 | #endif | 1600 | #endif |