Changeset 49004 in vbox for trunk/src/VBox/VMM/VMMR0
- Timestamp:
- Oct 9, 2013 1:41:07 PM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 89732
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r49003 r49004 1163 1163 * when NestedPaging is supported and providing @a enmFlush that is 1164 1164 * supported by the CPU. 1165 * @remarks Can be called with interrupts disabled. 1165 1166 */ 1166 1167 static void hmR0VmxFlushEpt(PVMCPU pVCpu, VMX_FLUSH_EPT enmFlush) … … 1197 1198 * @param GCPtr Virtual address of the page to flush (can be 0 depending 1198 1199 * on @a enmFlush). 1200 * 1201 * @remarks Can be called with interrupts disabled. 1199 1202 */ 1200 1203 static void hmR0VmxFlushVpid(PVM pVM, PVMCPU pVCpu, VMX_FLUSH_VPID enmFlush, RTGCPTR GCPtr) … … 5624 5627 * -> continue with VM-exit handling -> hmR0VmxSaveGuestControlRegs() and here we are. 5625 5628 * 5629 * The reason for such complicated handling is because VM-exits that call into PGM expect CR3 to be up-to-date and thus 5630 * if any CR3-saves -before- the VM-exit (longjmp) postponed the CR3 update via the force-flag, any VM-exit handler that 5631 * calls into PGM when it re-saves CR3 will end up here and we call PGMUpdateCR3(). This is why the code below should 5632 * -NOT- check if HMVMX_UPDATED_GUEST_CR3 is already set or not! 5633 * 5626 5634 * The longjmp exit path can't check these CR3 force-flags and call code that takes a lock again. We cover for it here. 5627 5635 */ … … 6204 6212 * @param fSaveGuestState Whether to save the guest state or not. 6205 6213 * 6214 * @remarks If you modify code here, make sure to check whether 6215 * hmR0VmxCallRing3Callback() needs to be updated too. 6206 6216 * @remarks No-long-jmp zone!!! 6207 6217 */ … … 6450 6460 * may be out-of-sync. Make sure to update the required 6451 6461 * fields before using them. 6462 * @remarks If you modify code here, make sure to check whether 6463 * hmR0VmxLeave() needs to be updated too. 6452 6464 */ 6453 6465 DECLCALLBACK(int) hmR0VmxCallRing3Callback(PVMCPU pVCpu, VMMCALLRING3 enmOperation, void *pvUser)
Note:
See TracChangeset
for help on using the changeset viewer.