MSR_GS_BASE
hv_wrmsr(MSR_GS_BASE, hv_crash_ctxt.gsbase);
ctxt->gsbase = __rdmsr(MSR_GS_BASE);
wrmsrq(MSR_GS_BASE, cpu_kernelmode_gs_base(cpu));
rdmsrq(MSR_GS_BASE, gs);
MSR_GS_BASE,
case MSR_GS_BASE:
case MSR_GS_BASE:
svm_disable_intercept_for_msr(vcpu, MSR_GS_BASE, MSR_TYPE_RW);
CC(e->index == MSR_GS_BASE) ||
nested_vmx_merge_msr_bitmaps_rw(MSR_GS_BASE);
case MSR_GS_BASE:
case MSR_GS_BASE:
vmx_disable_intercept_for_msr(vcpu, MSR_GS_BASE, MSR_TYPE_RW);
case MSR_GS_BASE:
rdmsrq(MSR_GS_BASE, base);
rdmsrq(MSR_GS_BASE, ctxt->kernelmode_gs_base);
wrmsrq(MSR_GS_BASE, ctxt->kernelmode_gs_base);
case MSR_GS_BASE:
vmwrite(HOST_GS_BASE, rdmsr(MSR_GS_BASE));
__set_bit(MSR_GS_BASE & 0x1fff, vmx_pages->msr + 0x400);
rdmsr_from_l2(MSR_GS_BASE); /* not intercepted */
rdmsr_from_l2(MSR_GS_BASE); /* intercepted */
__set_bit(2 * (MSR_GS_BASE & 0x1fff), svm->msr + 0x800);
rdmsr_from_l2(MSR_GS_BASE); /* not intercepted */
rdmsr_from_l2(MSR_GS_BASE); /* intercepted */
MSR_TEST_CANONICAL(MSR_GS_BASE, LM),
TEST_ASSERT(msr->index == MSR_FS_BASE || msr->index == MSR_GS_BASE ||
GUEST_ASSERT(rdmsr(MSR_GS_BASE) == MSR_GS_BASE);
GUEST_ASSERT(rdmsr(MSR_GS_BASE) != MSR_GS_BASE);
data = test_rdmsr(MSR_GS_BASE);
GUEST_ASSERT(data != MSR_GS_BASE);
data = test_rdmsr(MSR_GS_BASE);
GUEST_ASSERT(data == MSR_GS_BASE);
data = test_rdmsr(MSR_GS_BASE);
GUEST_ASSERT(data != MSR_GS_BASE);
case MSR_GS_BASE:
run->msr.data = MSR_GS_BASE;
run->msr.index == MSR_GS_BASE) {
.base = MSR_GS_BASE,
run_guest_then_process_rdmsr(vcpu, MSR_GS_BASE);
deny_msr(bitmap_c0000000_read, MSR_GS_BASE);
wrmsr(MSR_GS_BASE, LA57_GS_BASE);
GUEST_ASSERT(rdmsr(MSR_GS_BASE) == LA57_GS_BASE);