b843f9be5e
The VT-x VMCS only stores the base address of the GDTR and IDTR. As a result, VM exits use a fixed limit of 0xffff for the host GDTR and IDTR losing the smaller limits set in when the initial GDT is loaded on each CPU during boot. Explicitly save and restore the full GDTR and IDTR contents around VM entries and exits to restore the correct limit. Similarly, explicitly save and restore the LDT selector. VM exits always clear the host LDTR as if the LDT was loaded with a NULL selector and a userspace hypervisor is probably using a NULL selector anyway, but save and restore the LDT explicitly just to be safe. PR: 230773 Reported by: John Levon <levon@movementarian.org> Reviewed by: kib Tested by: araujo Approved by: re (rgrimes) MFC after: 1 week |
||
---|---|---|
.. | ||
ept.c | ||
ept.h | ||
vmcs.c | ||
vmcs.h | ||
vmx_controls.h | ||
vmx_cpufunc.h | ||
vmx_genassym.c | ||
vmx_msr.c | ||
vmx_msr.h | ||
vmx_support.S | ||
vmx.c | ||
vmx.h | ||
vtd.c |