Skip to content

Commit 1b07304

Browse files
committed
KVM: nVMX: support descriptor table exits
These are never used by the host, but they can still be reflected to the guest. Tested-by: Ladi Prosek <[email protected]> Signed-off-by: Paolo Bonzini <[email protected]>
1 parent 5587859 commit 1b07304

File tree

3 files changed

+8
-0
lines changed

3 files changed

+8
-0
lines changed

arch/x86/include/asm/vmx.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
*/
6161
#define SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES 0x00000001
6262
#define SECONDARY_EXEC_ENABLE_EPT 0x00000002
63+
#define SECONDARY_EXEC_DESC 0x00000004
6364
#define SECONDARY_EXEC_RDTSCP 0x00000008
6465
#define SECONDARY_EXEC_VIRTUALIZE_X2APIC_MODE 0x00000010
6566
#define SECONDARY_EXEC_ENABLE_VPID 0x00000020

arch/x86/include/uapi/asm/vmx.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@
6565
#define EXIT_REASON_TPR_BELOW_THRESHOLD 43
6666
#define EXIT_REASON_APIC_ACCESS 44
6767
#define EXIT_REASON_EOI_INDUCED 45
68+
#define EXIT_REASON_GDTR_IDTR 46
69+
#define EXIT_REASON_LDTR_TR 47
6870
#define EXIT_REASON_EPT_VIOLATION 48
6971
#define EXIT_REASON_EPT_MISCONFIG 49
7072
#define EXIT_REASON_INVEPT 50
@@ -113,6 +115,8 @@
113115
{ EXIT_REASON_MCE_DURING_VMENTRY, "MCE_DURING_VMENTRY" }, \
114116
{ EXIT_REASON_TPR_BELOW_THRESHOLD, "TPR_BELOW_THRESHOLD" }, \
115117
{ EXIT_REASON_APIC_ACCESS, "APIC_ACCESS" }, \
118+
{ EXIT_REASON_GDTR_IDTR, "GDTR_IDTR" }, \
119+
{ EXIT_REASON_LDTR_TR, "LDTR_TR" }, \
116120
{ EXIT_REASON_EPT_VIOLATION, "EPT_VIOLATION" }, \
117121
{ EXIT_REASON_EPT_MISCONFIG, "EPT_MISCONFIG" }, \
118122
{ EXIT_REASON_INVEPT, "INVEPT" }, \

arch/x86/kvm/vmx.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2796,6 +2796,7 @@ static void nested_vmx_setup_ctls_msrs(struct vcpu_vmx *vmx)
27962796
vmx->nested.nested_vmx_secondary_ctls_high &=
27972797
SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES |
27982798
SECONDARY_EXEC_RDTSCP |
2799+
SECONDARY_EXEC_DESC |
27992800
SECONDARY_EXEC_VIRTUALIZE_X2APIC_MODE |
28002801
SECONDARY_EXEC_ENABLE_VPID |
28012802
SECONDARY_EXEC_APIC_REGISTER_VIRT |
@@ -7961,6 +7962,8 @@ static bool nested_vmx_exit_handled(struct kvm_vcpu *vcpu)
79617962
return nested_cpu_has(vmcs12, CPU_BASED_MOV_DR_EXITING);
79627963
case EXIT_REASON_IO_INSTRUCTION:
79637964
return nested_vmx_exit_handled_io(vcpu, vmcs12);
7965+
case EXIT_REASON_GDTR_IDTR: case EXIT_REASON_LDTR_TR:
7966+
return nested_cpu_has2(vmcs12, SECONDARY_EXEC_DESC);
79647967
case EXIT_REASON_MSR_READ:
79657968
case EXIT_REASON_MSR_WRITE:
79667969
return nested_vmx_exit_handled_msr(vcpu, vmcs12, exit_reason);

0 commit comments

Comments
 (0)