Changeset 41224 in vbox for trunk/src/VBox/VMM/VMMR0
- Timestamp:
- May 9, 2012 1:46:05 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp
r41223 r41224 3637 3637 /* Handle the pagefault trap for the nested shadow table. */ 3638 3638 rc = PGMR0Trap0eHandlerNestedPaging(pVM, pVCpu, PGMMODE_EPT, errCode, CPUMCTX2CORE(pCtx), GCPhys); 3639 if (rc == VINF_SUCCESS) 3639 3640 /* 3641 * Same case as PGMR0Trap0eHandlerNPMisconfig(). See comment below, @bugref{6043}. 3642 */ 3643 if ( rc == VINF_SUCCESS 3644 || rc == VERR_PAGE_TABLE_NOT_PRESENT 3645 || rc == VERR_PAGE_NOT_PRESENT) 3640 3646 { /* We've successfully synced our shadow pages, so let's just continue execution. */ 3641 3647 Log2(("Shadow page fault at %RGv cr2=%RGp error code %x\n", (RTGCPTR)pCtx->rip, exitQualification , errCode)); … … 3645 3651 goto ResumeExecution; 3646 3652 } 3647 /** @todo We probably should handle failure to get the instruction page3648 * (VERR_PAGE_NOT_PRESENT, VERR_PAGE_TABLE_NOT_PRESENT). See3649 * @bugref{6043}. */3650 3653 3651 3654 #ifdef VBOX_STRICT … … 3686 3689 3687 3690 rc = PGMR0Trap0eHandlerNPMisconfig(pVM, pVCpu, PGMMODE_EPT, CPUMCTX2CORE(pCtx), GCPhys, UINT32_MAX); 3688 if (rc == VINF_SUCCESS) 3691 3692 /* 3693 * If we succeed, resume execution. 3694 * Or, if fail in interpreting the instruction because we couldn't get the guest physical address 3695 * of the page containing the instruction via the guest's page tables (we would invalidate the guest page 3696 * in the host TLB), resume execution which would cause a guest page fault to let the guest handle this 3697 * weird case. See @bugref{6043}. 3698 */ 3699 if ( rc == VINF_SUCCESS 3700 || rc == VERR_PAGE_TABLE_NOT_PRESENT 3701 || rc == VERR_PAGE_NOT_PRESENT) 3689 3702 { 3690 3703 Log2(("PGMR0Trap0eHandlerNPMisconfig(,,,%RGp) at %RGv -> resume\n", GCPhys, (RTGCPTR)pCtx->rip)); 3691 3704 goto ResumeExecution; 3692 3705 } 3693 /** @todo We probably should handle failure to get the instruction page3694 * (VERR_PAGE_NOT_PRESENT, VERR_PAGE_TABLE_NOT_PRESENT). See3695 * @bugref{6043}. */3696 3706 3697 3707 Log2(("PGMR0Trap0eHandlerNPMisconfig(,,,%RGp) at %RGv -> %Rrc\n", GCPhys, (RTGCPTR)pCtx->rip, VBOXSTRICTRC_VAL(rc)));
Note:
See TracChangeset
for help on using the changeset viewer.