Merge tag 'iwlwifi-next-for-kalle-2014-12-30' of https://git.kernel.org/pub/scm/linux...
[cascardo/linux.git] / arch / x86 / kernel / kvmclock.c
index d9156ce..42caaef 100644 (file)
@@ -59,13 +59,12 @@ static void kvm_get_wallclock(struct timespec *now)
 
        native_write_msr(msr_kvm_wall_clock, low, high);
 
-       preempt_disable();
-       cpu = smp_processor_id();
+       cpu = get_cpu();
 
        vcpu_time = &hv_clock[cpu].pvti;
        pvclock_read_wallclock(&wall_clock, vcpu_time, now);
 
-       preempt_enable();
+       put_cpu();
 }
 
 static int kvm_set_wallclock(const struct timespec *now)
@@ -107,11 +106,10 @@ static unsigned long kvm_get_tsc_khz(void)
        int cpu;
        unsigned long tsc_khz;
 
-       preempt_disable();
-       cpu = smp_processor_id();
+       cpu = get_cpu();
        src = &hv_clock[cpu].pvti;
        tsc_khz = pvclock_tsc_khz(src);
-       preempt_enable();
+       put_cpu();
        return tsc_khz;
 }
 
@@ -263,7 +261,6 @@ void __init kvmclock_init(void)
 #endif
        kvm_get_preset_lpj();
        clocksource_register_hz(&kvm_clock, NSEC_PER_SEC);
-       pv_info.paravirt_enabled = 1;
        pv_info.name = "KVM";
 
        if (kvm_para_has_feature(KVM_FEATURE_CLOCKSOURCE_STABLE_BIT))
@@ -284,23 +281,22 @@ int __init kvm_setup_vsyscall_timeinfo(void)
 
        size = PAGE_ALIGN(sizeof(struct pvclock_vsyscall_time_info)*NR_CPUS);
 
-       preempt_disable();
-       cpu = smp_processor_id();
+       cpu = get_cpu();
 
        vcpu_time = &hv_clock[cpu].pvti;
        flags = pvclock_read_flags(vcpu_time);
 
        if (!(flags & PVCLOCK_TSC_STABLE_BIT)) {
-               preempt_enable();
+               put_cpu();
                return 1;
        }
 
        if ((ret = pvclock_init_vsyscall(hv_clock, size))) {
-               preempt_enable();
+               put_cpu();
                return ret;
        }
 
-       preempt_enable();
+       put_cpu();
 
        kvm_clock.archdata.vclock_mode = VCLOCK_PVCLOCK;
 #endif