KVM: SVM: fix Windows XP 64 bit installation crash
While installing Windows XP 64 bit wants to access the DEBUGCTL and the last branch record (LBR) MSRs. Don't allowing this in KVM causes the installation to crash. This patch allow the access to these MSRs and fixes the issue. Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> Signed-off-by: Markus Rechberger <markus.rechberger@amd.com> Signed-off-by: Avi Kivity <avi@qumranet.com>
This commit is contained in:
parent
72dc67a696
commit
a2938c8070
|
@ -1100,6 +1100,24 @@ static int svm_get_msr(struct kvm_vcpu *vcpu, unsigned ecx, u64 *data)
|
|||
case MSR_IA32_SYSENTER_ESP:
|
||||
*data = svm->vmcb->save.sysenter_esp;
|
||||
break;
|
||||
/* Nobody will change the following 5 values in the VMCB so
|
||||
we can safely return them on rdmsr. They will always be 0
|
||||
until LBRV is implemented. */
|
||||
case MSR_IA32_DEBUGCTLMSR:
|
||||
*data = svm->vmcb->save.dbgctl;
|
||||
break;
|
||||
case MSR_IA32_LASTBRANCHFROMIP:
|
||||
*data = svm->vmcb->save.br_from;
|
||||
break;
|
||||
case MSR_IA32_LASTBRANCHTOIP:
|
||||
*data = svm->vmcb->save.br_to;
|
||||
break;
|
||||
case MSR_IA32_LASTINTFROMIP:
|
||||
*data = svm->vmcb->save.last_excp_from;
|
||||
break;
|
||||
case MSR_IA32_LASTINTTOIP:
|
||||
*data = svm->vmcb->save.last_excp_to;
|
||||
break;
|
||||
default:
|
||||
return kvm_get_msr_common(vcpu, ecx, data);
|
||||
}
|
||||
|
@ -1160,6 +1178,10 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, unsigned ecx, u64 data)
|
|||
case MSR_IA32_SYSENTER_ESP:
|
||||
svm->vmcb->save.sysenter_esp = data;
|
||||
break;
|
||||
case MSR_IA32_DEBUGCTLMSR:
|
||||
pr_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTLMSR 0x%llx, nop\n",
|
||||
__FUNCTION__, data);
|
||||
break;
|
||||
case MSR_K7_EVNTSEL0:
|
||||
case MSR_K7_EVNTSEL1:
|
||||
case MSR_K7_EVNTSEL2:
|
||||
|
|
Loading…
Reference in New Issue