From 83d906b7a0cfe3cd197360e9be3e6b1e04c373cf Mon Sep 17 00:00:00 2001 From: Gleb Natapov Date: Mon, 30 Apr 2012 14:45:49 +0300 Subject: [PATCH] --- yaml --- r: 307883 b: refs/heads/master c: 9b72d3b07dd99ac8ab2b84de5004a295af460536 h: refs/heads/master i: 307881: 9486594bae7a4725c66e636a7f5def560baaf623 307879: 68e0847b3c4984cc6a647cc7d8ccdcf97d85a9ea v: v3 --- [refs] | 2 +- trunk/arch/x86/include/asm/kvm_para.h | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index 909fb0836b07..ffe8af5e7866 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 57c22e5f35aa4b9b2fe11f73f3e62bbf9ef36190 +refs/heads/master: 9b72d3b07dd99ac8ab2b84de5004a295af460536 diff --git a/trunk/arch/x86/include/asm/kvm_para.h b/trunk/arch/x86/include/asm/kvm_para.h index 99c4bbe0cca2..a7a7a94b94ce 100644 --- a/trunk/arch/x86/include/asm/kvm_para.h +++ b/trunk/arch/x86/include/asm/kvm_para.h @@ -178,14 +178,16 @@ static inline int kvm_para_available(void) unsigned int eax, ebx, ecx, edx; char signature[13]; - 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 1; + 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 1; + } return 0; }