mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-19 02:04:19 +08:00
KVM: MTRR: handle MSR_MTRRcap in kvm_mtrr_get_msr
MSR_MTRRcap is a MTRR msr so move the handler to the common place, also add some comments to make the hard code more readable Signed-off-by: Xiao Guangrong <guangrong.xiao@linux.intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
ff53604b40
commit
eb839917a7
@ -199,6 +199,18 @@ int kvm_mtrr_get_msr(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata)
|
||||
{
|
||||
u64 *p = (u64 *)&vcpu->arch.mtrr_state.fixed_ranges;
|
||||
|
||||
/* MSR_MTRRcap is a readonly MSR. */
|
||||
if (msr == MSR_MTRRcap) {
|
||||
/*
|
||||
* SMRR = 0
|
||||
* WC = 1
|
||||
* FIX = 1
|
||||
* VCNT = KVM_NR_VAR_MTRR
|
||||
*/
|
||||
*pdata = 0x500 | KVM_NR_VAR_MTRR;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!msr_mtrr_valid(msr))
|
||||
return 1;
|
||||
|
||||
|
@ -2443,8 +2443,6 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
|
||||
msr_info->data = 0x100000000ULL;
|
||||
break;
|
||||
case MSR_MTRRcap:
|
||||
msr_info->data = 0x500 | KVM_NR_VAR_MTRR;
|
||||
break;
|
||||
case 0x200 ... 0x2ff:
|
||||
return kvm_mtrr_get_msr(vcpu, msr_info->index, &msr_info->data);
|
||||
case 0xcd: /* fsb frequency */
|
||||
|
Loading…
Reference in New Issue
Block a user