Lines Matching refs:msr_info
1986 * Reads an msr value (of 'msr_info->index') into 'msr_info->data'.
1990 static int vmx_get_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
1996 switch (msr_info->index) {
1999 msr_info->data = vmcs_readl(GUEST_FS_BASE);
2002 msr_info->data = vmcs_readl(GUEST_GS_BASE);
2005 msr_info->data = vmx_read_guest_kernel_gs_base(vmx);
2009 return kvm_get_msr_common(vcpu, msr_info);
2011 if (!msr_info->host_initiated &&
2016 if (!msr_info->host_initiated && !vmx_has_waitpkg(vmx))
2019 msr_info->data = vmx->msr_ia32_umwait_control;
2022 if (!msr_info->host_initiated &&
2026 msr_info->data = to_vmx(vcpu)->spec_ctrl;
2029 msr_info->data = vmcs_read32(GUEST_SYSENTER_CS);
2032 msr_info->data = vmcs_readl(GUEST_SYSENTER_EIP);
2035 msr_info->data = vmcs_readl(GUEST_SYSENTER_ESP);
2039 (!msr_info->host_initiated &&
2042 msr_info->data = vmcs_read64(GUEST_BNDCFGS);
2045 if (!msr_info->host_initiated &&
2049 msr_info->data = vcpu->arch.mcg_ext_ctl;
2052 msr_info->data = vmx->msr_ia32_feature_control;
2055 if (!msr_info->host_initiated &&
2058 msr_info->data = to_vmx(vcpu)->msr_ia32_sgxlepubkeyhash
2059 [msr_info->index - MSR_IA32_SGXLEPUBKEYHASH0];
2064 if (vmx_get_vmx_msr(&vmx->nested.msrs, msr_info->index,
2065 &msr_info->data))
2074 if (!msr_info->host_initiated && guest_cpuid_has_evmcs(vcpu))
2075 nested_evmcs_filter_control_msr(vcpu, msr_info->index,
2076 &msr_info->data);
2081 msr_info->data = vmx->pt_desc.guest.ctl;
2086 msr_info->data = vmx->pt_desc.guest.status;
2093 msr_info->data = vmx->pt_desc.guest.cr3_match;
2102 msr_info->data = vmx->pt_desc.guest.output_base;
2111 msr_info->data = vmx->pt_desc.guest.output_mask;
2114 index = msr_info->index - MSR_IA32_RTIT_ADDR0_A;
2119 msr_info->data = vmx->pt_desc.guest.addr_b[index / 2];
2121 msr_info->data = vmx->pt_desc.guest.addr_a[index / 2];
2124 msr_info->data = vmcs_read64(GUEST_IA32_DEBUGCTL);
2128 msr = vmx_find_uret_msr(vmx, msr_info->index);
2130 msr_info->data = msr->data;
2133 return kvm_get_msr_common(vcpu, msr_info);
2169 static int vmx_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
2174 u32 msr_index = msr_info->index;
2175 u64 data = msr_info->data;
2180 ret = kvm_set_msr_common(vcpu, msr_info);
2195 ret = kvm_set_msr_common(vcpu, msr_info);
2235 invalid = data & ~vmx_get_supported_debugctl(vcpu, msr_info->host_initiated);
2257 (!msr_info->host_initiated &&
2272 if (!msr_info->host_initiated && !vmx_has_waitpkg(vmx))
2282 if (!msr_info->host_initiated &&
2310 if (!msr_info->host_initiated &&
2317 ret = kvm_set_msr_common(vcpu, msr_info);
2329 if ((!msr_info->host_initiated &&
2337 if (!is_vmx_feature_control_msr_valid(vmx, msr_info))
2341 if (msr_info->host_initiated && data == 0)
2359 if (!msr_info->host_initiated &&
2368 if (!msr_info->host_initiated)
2422 index = msr_info->index - MSR_IA32_RTIT_ADDR0_A;
2453 ret = kvm_set_msr_common(vcpu, msr_info);
2462 ret = kvm_set_msr_common(vcpu, msr_info);