aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm
diff options
context:
space:
mode:
authorNicolae Mogoreanu <mogoreanu@gmail.com>2012-02-21 16:44:21 -0500
committerAvi Kivity <avi@redhat.com>2012-03-08 07:14:14 -0500
commita223c313cb13e9ab71051fc5b70610a2829a4082 (patch)
treea3ee30f359ee00852610cbda5e6549f5e721802a /arch/x86/kvm
parent4d6931c380a976753f7566a96b58690010ef1413 (diff)
KVM: Ignore the writes to MSR_K7_HWCR(3)
When CPUID Fn8000_0001_EAX reports 0x00100f22 Windows 7 x64 guest tries to set bit 3 in MSRC001_0015 in nt!KiDisableCacheErrataSource and fails. This patch will ignore this step and allow things to move on without having to fake CPUID value. Signed-off-by: Nicolae Mogoreanu <mogoreanu@gmail.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/kvm')
-rw-r--r--arch/x86/kvm/x86.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 6866083a48c..32096cf6c6c 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -1547,6 +1547,7 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
1547 case MSR_K7_HWCR: 1547 case MSR_K7_HWCR:
1548 data &= ~(u64)0x40; /* ignore flush filter disable */ 1548 data &= ~(u64)0x40; /* ignore flush filter disable */
1549 data &= ~(u64)0x100; /* ignore ignne emulation enable */ 1549 data &= ~(u64)0x100; /* ignore ignne emulation enable */
1550 data &= ~(u64)0x8; /* ignore TLB cache disable */
1550 if (data != 0) { 1551 if (data != 0) {
1551 pr_unimpl(vcpu, "unimplemented HWCR wrmsr: 0x%llx\n", 1552 pr_unimpl(vcpu, "unimplemented HWCR wrmsr: 0x%llx\n",
1552 data); 1553 data);