diff options
Diffstat (limited to 'kernel/hrtimer.c')
| -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 8f7001c97e0..9c2bfa84128 100644 --- a/kernel/hrtimer.c +++ b/kernel/hrtimer.c @@ -1504,6 +1504,11 @@ static void __cpuinit init_hrtimers_cpu(int cpu)  #ifdef CONFIG_HOTPLUG_CPU +static void tickle_timers(void *arg) +{ +	hrtimer_peek_ahead_timers(); +} +  static void migrate_hrtimer_list(struct hrtimer_clock_base *old_base,  				struct hrtimer_clock_base *new_base)  { @@ -1539,7 +1544,7 @@ static void migrate_hrtimer_list(struct hrtimer_clock_base *old_base,  	}  } -static int migrate_hrtimers(int scpu) +static void migrate_hrtimers(int scpu)  {  	struct hrtimer_cpu_base *old_base, *new_base;  	int dcpu, i; @@ -1567,12 +1572,7 @@ static int migrate_hrtimers(int scpu)  	spin_unlock_irq(&new_base->lock);  	put_cpu_var(hrtimer_bases); -	return dcpu; -} - -static void tickle_timers(void *arg) -{ -	hrtimer_peek_ahead_timers(); +	smp_call_function_single(dcpu, tickle_timers, NULL, 0);  }  #endif /* CONFIG_HOTPLUG_CPU */ @@ -1593,11 +1593,8 @@ static int __cpuinit hrtimer_cpu_notify(struct notifier_block *self,  	case CPU_DEAD:  	case CPU_DEAD_FROZEN:  	{ -		int dcpu; -  		clockevents_notify(CLOCK_EVT_NOTIFY_CPU_DEAD, &scpu); -		dcpu = migrate_hrtimers(scpu); -		smp_call_function_single(dcpu, tickle_timers, NULL, 0); +		migrate_hrtimers(scpu);  		break;  	}  #endif  | 
