mirror of
https://github.com/opnsense/src.git
synced 2026-04-05 01:15:30 -04:00
Always allow access to the sysenter cs/esp/eip MSRs since they
are automatically saved and restored in the VMCS. Reviewed by: neel Obtained from: NetApp
This commit is contained in:
parent
b218348bc3
commit
1fb0ea3f1a
1 changed files with 7 additions and 0 deletions
|
|
@ -696,6 +696,10 @@ vmx_vminit(struct vm *vm)
|
|||
* vm-exit and vm-entry respectively. The host FSBASE and GSBASE are
|
||||
* always restored from the vmcs host state area on vm-exit.
|
||||
*
|
||||
* The SYSENTER_CS/ESP/EIP MSRs are identical to FS/GSBASE in
|
||||
* how they are saved/restored so can be directly accessed by the
|
||||
* guest.
|
||||
*
|
||||
* Guest KGSBASE is saved and restored in the guest MSR save area.
|
||||
* Host KGSBASE is restored before returning to userland from the pcb.
|
||||
* There will be a window of time when we are executing in the host
|
||||
|
|
@ -708,6 +712,9 @@ vmx_vminit(struct vm *vm)
|
|||
*/
|
||||
if (guest_msr_rw(vmx, MSR_GSBASE) ||
|
||||
guest_msr_rw(vmx, MSR_FSBASE) ||
|
||||
guest_msr_rw(vmx, MSR_SYSENTER_CS_MSR) ||
|
||||
guest_msr_rw(vmx, MSR_SYSENTER_ESP_MSR) ||
|
||||
guest_msr_rw(vmx, MSR_SYSENTER_EIP_MSR) ||
|
||||
guest_msr_rw(vmx, MSR_KGSBASE) ||
|
||||
guest_msr_rw(vmx, MSR_EFER))
|
||||
panic("vmx_vminit: error setting guest msr access");
|
||||
|
|
|
|||
Loading…
Reference in a new issue