diff options
Diffstat (limited to 'target-i386')
-rw-r--r-- | target-i386/cpu.h | 1 | ||||
-rw-r--r-- | target-i386/kvm.c | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/target-i386/cpu.h b/target-i386/cpu.h index a50f0594b0..4a8608e0ce 100644 --- a/target-i386/cpu.h +++ b/target-i386/cpu.h @@ -362,6 +362,7 @@ #define CPUID_EXT_POPCNT (1 << 23) #define CPUID_EXT_XSAVE (1 << 26) #define CPUID_EXT_OSXSAVE (1 << 27) +#define CPUID_EXT_HYPERVISOR (1 << 31) #define CPUID_EXT2_SYSCALL (1 << 11) #define CPUID_EXT2_MP (1 << 19) diff --git a/target-i386/kvm.c b/target-i386/kvm.c index 70a9b45588..4a3f598e4f 100644 --- a/target-i386/kvm.c +++ b/target-i386/kvm.c @@ -143,8 +143,12 @@ int kvm_arch_init_vcpu(CPUState *env) kvm_trim_features(&env->cpuid_features, kvm_arch_get_supported_cpuid(env, 1, R_EDX)); + + i = env->cpuid_ext_features & CPUID_EXT_HYPERVISOR; kvm_trim_features(&env->cpuid_ext_features, kvm_arch_get_supported_cpuid(env, 1, R_ECX)); + env->cpuid_ext_features |= i; + kvm_trim_features(&env->cpuid_ext2_features, kvm_arch_get_supported_cpuid(env, 0x80000001, R_EDX)); kvm_trim_features(&env->cpuid_ext3_features, |