Re: [PATCH 3/4] kvm: switch to use hypervisor_cpuid_base()

Paolo Bonzini
2013-07-23T11:16:35Z

Il 23/07/2013 11:41, Jason Wang ha scritto:
> Switch to use hypervisor_cpuid_base() to detect KVM.
>
> Cc: Gleb Natapov <gleb@redhat.com>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Ingo Molnar <mingo@redhat.com>
> Cc: "H. Peter Anvin" <hpa@zytor.com>
> Cc: x86@kernel.org
> Cc: kvm@vger.kernel.org
> Signed-off-by: Jason Wang <jasowang@redhat.com>
> ---
> arch/x86/include/asm/kvm_para.h | 17 ++---------------
> 1 files changed, 2 insertions(+), 15 deletions(-)
>
> diff --git a/arch/x86/include/asm/kvm_para.h b/arch/x86/include/asm/kvm_para.h
> index 695399f..79bd075 100644
> --- a/arch/x86/include/asm/kvm_para.h
> +++ b/arch/x86/include/asm/kvm_para.h
> @@ -2,6 +2,7 @@
> #define _ASM_X86_KVM_PARA_H
>
> #include <asm/processor.h>
> +#include <asm/hypervisor.h>
> #include <uapi/asm/kvm_para.h>
>
> extern void kvmclock_init(void);
> @@ -87,24 +88,10 @@ static inline long kvm_hypercall4(unsigned int nr, unsigned long p1,
>
> static inline bool kvm_para_available(void)
> {
> - unsigned int eax, ebx, ecx, edx;
> - char signature[13];
> -
> if (boot_cpu_data.cpuid_level < 0)
> return false; /* So we don't blow up on old processors */
>
> - if (cpu_has_hypervisor) {
> - cpuid(KVM_CPUID_SIGNATURE, &eax, &ebx, &ecx, &edx);
> - memcpy(signature + 0, &ebx, 4);
> - memcpy(signature + 4, &ecx, 4);
> - memcpy(signature + 8, &edx, 4);
> - signature[12] = 0;
> -
> - if (strcmp(signature, "KVMKVMKVM") == 0)
> - return true;
> - }
> -
> - return false;
> + return hypervisor_cpuid_base("KVMKVMKVM", 0);
> }
>
> static inline unsigned int kvm_arch_para_features(void)
>

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>