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

"Linux Kernel Mailing List" <[email protected]> Sat, 10 Feb 2018 22:00:24 +0000 (UTC)
Newsgroups gmane.linux.kernel.commits.head
Message-ID <[email protected]>
Web:        https://git.kernel.org/torvalds/c/5fa4ec9cb2e6679e2f828033726f758ea314b9c5
Commit:     5fa4ec9cb2e6679e2f828033726f758ea314b9c5
Parent:     0092e4346f49558e5fe5a927c6d78d401dc4ed73
Refname:    refs/heads/master
Author:     Thomas Gleixner <[email protected]>
AuthorDate: Wed Jan 31 09:41:40 2018 +0100
Committer:  Thomas Gleixner <[email protected]>
CommitDate: Wed Jan 31 10:29:40 2018 +0100

    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....
    
    Fixes: 0092e4346f49 ("x86/kvm: Support Hyper-V reenlightenment")
    Reported-by: Ingo Molnar <[email protected]>
    Signed-off-by: Thomas Gleixner <[email protected]>
    Cc: Vitaly Kuznetsov <[email protected]>
    Cc: Paolo Bonzini <[email protected]>
    Cc: Stephen Hemminger <[email protected]>
    Cc: [email protected]
    Cc: Radim Krčmář <[email protected]>
    Cc: Haiyang Zhang <[email protected]>
    Cc: "Michael Kelley (EOSG)" <[email protected]>
    Cc: Roman Kagan <[email protected]>
    Cc: Andy Lutomirski <[email protected]>
    Cc: [email protected]
    Cc: "K. Y. Srinivasan" <[email protected]>
    Cc: Cathy Avery <[email protected]>
    Cc: Mohammed Gamal <[email protected]>
---
 arch/x86/kvm/x86.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 879a99987401..cd3b3bc67c5a 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -5933,9 +5933,9 @@ static void tsc_khz_changed(void *data)
 	__this_cpu_write(cpu_tsc_khz, khz);
 }
 
+#ifdef CONFIG_X86_64
 static void kvm_hyperv_tsc_notifier(void)
 {
-#ifdef CONFIG_X86_64
 	struct kvm *kvm;
 	struct kvm_vcpu *vcpu;
 	int cpu;
@@ -5967,8 +5967,8 @@ static void kvm_hyperv_tsc_notifier(void)
 		spin_unlock(&ka->pvclock_gtod_sync_lock);
 	}
 	spin_unlock(&kvm_lock);
-#endif
 }
+#endif
 
 static int kvmclock_cpufreq_notifier(struct notifier_block *nb, unsigned long val,
 				     void *data)
@@ -6256,7 +6256,7 @@ int kvm_arch_init(void *opaque)
 #ifdef CONFIG_X86_64
 	pvclock_gtod_register_notifier(&pvclock_gtod_notifier);
 
-	if (x86_hyper_type == X86_HYPER_MS_HYPERV)
+	if (hypervisor_is_type(X86_HYPER_MS_HYPERV))
 		set_hv_tscchange_cb(kvm_hyperv_tsc_notifier);
 #endif
 
@@ -6271,7 +6271,7 @@ out:
 void kvm_arch_exit(void)
 {
 #ifdef CONFIG_X86_64
-	if (x86_hyper_type == X86_HYPER_MS_HYPERV)
+	if (hypervisor_is_type(X86_HYPER_MS_HYPERV))
 		clear_hv_tscchange_cb();
 #endif
 	kvm_lapic_exit();
--
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html