diff options
-rw-r--r-- | arch/x86/kvm/svm.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index b71daed3cca2..59e13a79c2e3 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c | |||
@@ -3671,6 +3671,13 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr) | |||
3671 | u32 ecx = msr->index; | 3671 | u32 ecx = msr->index; |
3672 | u64 data = msr->data; | 3672 | u64 data = msr->data; |
3673 | switch (ecx) { | 3673 | switch (ecx) { |
3674 | case MSR_IA32_CR_PAT: | ||
3675 | if (!kvm_mtrr_valid(vcpu, MSR_IA32_CR_PAT, data)) | ||
3676 | return 1; | ||
3677 | vcpu->arch.pat = data; | ||
3678 | svm->vmcb->save.g_pat = data; | ||
3679 | mark_dirty(svm->vmcb, VMCB_NPT); | ||
3680 | break; | ||
3674 | case MSR_IA32_TSC: | 3681 | case MSR_IA32_TSC: |
3675 | kvm_write_tsc(vcpu, msr); | 3682 | kvm_write_tsc(vcpu, msr); |
3676 | break; | 3683 | break; |