On 12/09/2010 08:42 PM, Thomas Meyer wrote:
Signed-off-by: Thomas Meyer<thomas@xxxxxxxx> --- arch/x86/kvm/x86.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index cdac9e5..2609c3d 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -4561,7 +4561,7 @@ static struct notifier_block kvmclock_cpu_notifier_block = { static void kvm_timer_init(void) { - int cpu; + int cpu = get_cpu(); max_tsc_khz = tsc_khz; register_hotcpu_notifier(&kvmclock_cpu_notifier_block);
This eventually takes a mutex (in cpu_maps_update_begin()), so it can't be called with preemption disabled.
@@ -4569,13 +4569,14 @@ static void kvm_timer_init(void) #ifdef CONFIG_CPU_FREQ struct cpufreq_policy policy; memset(&policy, 0, sizeof(policy)); - cpufreq_get_policy(&policy, get_cpu()); + cpufreq_get_policy(&policy, cpu); if (policy.cpuinfo.max_freq) max_tsc_khz = policy.cpuinfo.max_freq; #endif cpufreq_register_notifier(&kvmclock_cpufreq_notifier_block, CPUFREQ_TRANSITION_NOTIFIER); } + put_cpu(); pr_debug("kvm: max_tsc_khz = %ld\n", max_tsc_khz); for_each_online_cpu(cpu) smp_call_function_single(cpu, tsc_khz_changed, NULL, 1);
-- error compiling committee.c: too many arguments to function -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html