KVM: fix MMIO_CONF_BASE MSR access
authorAndre Przywara <andre.przywara@amd.com>
Thu, 2 Jul 2009 13:04:14 +0000 (15:04 +0200)
committerAvi Kivity <avi@redhat.com>
Thu, 10 Sep 2009 05:33:10 +0000 (08:33 +0300)
Some Windows versions check whether the BIOS has setup MMI/O for
config space accesses on AMD Fam10h CPUs, we say "no" by returning 0 on
reads and only allow disabling of MMI/O CfgSpace setup by igoring "0" writes.

Signed-off-by: Andre Przywara <andre.przywara@amd.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/kvm/x86.c

index 0e74d98641a01cbb786f18a617c266c8e05d7f41..95fa45c0f16ef04d26499bcfb6ae07b6bbe37075 100644 (file)
@@ -844,6 +844,13 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
                        return 1;
                }
                break;
+       case MSR_FAM10H_MMIO_CONF_BASE:
+               if (data != 0) {
+                       pr_unimpl(vcpu, "unimplemented MMIO_CONF_BASE wrmsr: "
+                               "0x%llx\n", data);
+                       return 1;
+               }
+               break;
        case MSR_AMD64_NB_CFG:
                break;
        case MSR_IA32_DEBUGCTLMSR:
@@ -1055,6 +1062,7 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata)
        case MSR_K7_EVNTSEL0:
        case MSR_K8_INT_PENDING_MSG:
        case MSR_AMD64_NB_CFG:
+       case MSR_FAM10H_MMIO_CONF_BASE:
                data = 0;
                break;
        case MSR_MTRRcap: