MSR_TYPE_W
if (type & MSR_TYPE_W) {
svm_set_intercept_for_msr(vcpu, MSR_IA32_PRED_CMD, MSR_TYPE_W,
svm_set_intercept_for_msr(vcpu, MSR_IA32_FLUSH_CMD, MSR_TYPE_W,
if (type & MSR_TYPE_W && !vmx_test_msr_bitmap_write(msr_bitmap_l1, msr))
if (types & MSR_TYPE_W)
nested_vmx_merge_msr_bitmaps(msr, MSR_TYPE_W)
MSR_TYPE_R | MSR_TYPE_W);
MSR_TYPE_W);
MSR_TYPE_W);
if (type & MSR_TYPE_W) {
vmx_disable_intercept_for_msr(vcpu, X2APIC_MSR(APIC_EOI), MSR_TYPE_W);
vmx_disable_intercept_for_msr(vcpu, X2APIC_MSR(APIC_SELF_IPI), MSR_TYPE_W);
vmx_set_intercept_for_msr(vcpu, MSR_IA32_PRED_CMD, MSR_TYPE_W,
vmx_set_intercept_for_msr(vcpu, MSR_IA32_FLUSH_CMD, MSR_TYPE_W,
return kvm_do_msr_access(vcpu, index, &data, host_initiated, MSR_TYPE_W,
BUILD_BUG_ON(access != MSR_TYPE_R && access != MSR_TYPE_W);
kvm_access_xstate_msr(vcpu, msr_info, MSR_TYPE_W);
const char *op = rw == MSR_TYPE_W ? "wrmsr" : "rdmsr";
BUILD_BUG_ON(rw != MSR_TYPE_R && rw != MSR_TYPE_W);
MSR_TYPE_RW = MSR_TYPE_R | MSR_TYPE_W,