History

x86/kvm: Make it compile on 32bit and with HYPYERVISOR_GUEST=n

The reenlightment support for hyperv slapped a direct reference to x86_hyper_type into the kvm code which results in the following build failure when CONFIG_HYPERVISOR_GUEST=n: arch/x86/kvm/x86.c:6259:6: error: ‘x86_hyper_type’ undeclared (first use in this function) arch/x86/kvm/x86.c:6259:6: note: each undeclared identifier is reported only once for each function it appears in Use the proper helper function to cure that. The 32bit compile fails because of: arch/x86/kvm/x86.c:5936:13: warning: ‘kvm_hyperv_tsc_notifier’ defined but not used [-Wunused-function] which is a real trainwreck engineering artwork. The callsite is wrapped into #ifdef CONFIG_X86_64, but the function itself has the #ifdef inside the function body. Make the function itself wrapped into the ifdef to cure that. Qualiteee....

Thomas Gleixner committed 8 years ago

Commit 5fa4ec91 parent 0092e431 file · +4 −4Browse files

Unified · Split

arch/x86/kvm/x86.c+4−4
@@ -5933,9 +5933,9 @@ static void tsc_khz_changed(void *data) · 5932 unmodified lines
5933 __this_cpu_write(cpu_tsc_khz, khz);5933 __this_cpu_write(cpu_tsc_khz, khz);
5934}5934}
5935 5935
5936#ifdef CONFIG_X86_64
5936static void kvm_hyperv_tsc_notifier(void)5937static void kvm_hyperv_tsc_notifier(void)
5937{5938{
5938#ifdef CONFIG_X86_64
5939 struct kvm *kvm;5939 struct kvm *kvm;
5940 struct kvm_vcpu *vcpu;5940 struct kvm_vcpu *vcpu;
5941 int cpu;5941 int cpu;
@@ -5967,8 +5967,8 @@ static void kvm_hyperv_tsc_notifier(void) · 25 unmodified lines
5967 spin_unlock(&ka->pvclock_gtod_sync_lock);5967 spin_unlock(&ka->pvclock_gtod_sync_lock);
5968 }5968 }
5969 spin_unlock(&kvm_lock);5969 spin_unlock(&kvm_lock);
5970#endif
5971}5970}
5971#endif
5972 5972
5973static int kvmclock_cpufreq_notifier(struct notifier_block *nb, unsigned long val,5973static int kvmclock_cpufreq_notifier(struct notifier_block *nb, unsigned long val,
5974 void *data)5974 void *data)
@@ -6256,7 +6256,7 @@ int kvm_arch_init(void *opaque) · 281 unmodified lines
6256#ifdef CONFIG_X86_646256#ifdef CONFIG_X86_64
6257 pvclock_gtod_register_notifier(&pvclock_gtod_notifier);6257 pvclock_gtod_register_notifier(&pvclock_gtod_notifier);
6258 6258
6259 if (x86_hyper_type == X86_HYPER_MS_HYPERV)6259 if (hypervisor_is_type(X86_HYPER_MS_HYPERV))
6260 set_hv_tscchange_cb(kvm_hyperv_tsc_notifier);6260 set_hv_tscchange_cb(kvm_hyperv_tsc_notifier);
6261#endif6261#endif
6262 6262
@@ -6271,7 +6271,7 @@ out: · 8 unmodified lines
6271void kvm_arch_exit(void)6271void kvm_arch_exit(void)
6272{6272{
6273#ifdef CONFIG_X86_646273#ifdef CONFIG_X86_64
6274 if (x86_hyper_type == X86_HYPER_MS_HYPERV)6274 if (hypervisor_is_type(X86_HYPER_MS_HYPERV))
6275 clear_hv_tscchange_cb();6275 clear_hv_tscchange_cb();
6276#endif6276#endif
6277 kvm_lapic_exit();6277 kvm_lapic_exit();