Changeset 71445 in vbox
- Timestamp:
- Mar 22, 2018 10:40:37 AM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 121414
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp
r71444 r71445 359 359 static FNSVMEXITHANDLER hmR0SvmExitVmmCall; 360 360 static FNSVMEXITHANDLER hmR0SvmExitPause; 361 static FNSVMEXITHANDLER hmR0SvmExitFerrFreeze; 361 362 static FNSVMEXITHANDLER hmR0SvmExitIret; 362 363 static FNSVMEXITHANDLER hmR0SvmExitXcptPF; … … 5235 5236 if (HMIsGuestSvmCtrlInterceptSet(pVCpu, pCtx, SVM_CTRL_INTERCEPT_FERR_FREEZE)) 5236 5237 return HM_SVM_VMEXIT_NESTED(pVCpu, uExitCode, uExitInfo1, uExitInfo2); 5237 return hmR0SvmExit Intr(pVCpu, pCtx, pSvmTransient);5238 return hmR0SvmExitFerrFreeze(pVCpu, pCtx, pSvmTransient); 5238 5239 } 5239 5240 … … 5526 5527 return hmR0SvmExitVIntr(pVCpu, pCtx, pSvmTransient); 5527 5528 5529 case SVM_EXIT_FERR_FREEZE: 5530 return hmR0SvmExitFerrFreeze(pVCpu, pCtx, pSvmTransient); 5531 5528 5532 case SVM_EXIT_INTR: 5529 case SVM_EXIT_FERR_FREEZE:5530 5533 case SVM_EXIT_NMI: 5531 5534 return hmR0SvmExitIntr(pVCpu, pCtx, pSvmTransient); … … 7235 7238 7236 7239 /** 7240 * \#VMEXIT handler for FERR intercept (SVM_EXIT_FERR_FREEZE). Conditional 7241 * \#VMEXIT. 7242 */ 7243 HMSVM_EXIT_DECL hmR0SvmExitFerrFreeze(PVMCPU pVCpu, PCPUMCTX pCtx, PSVMTRANSIENT pSvmTransient) 7244 { 7245 HMSVM_VALIDATE_EXIT_HANDLER_PARAMS(); 7246 Assert(!(pCtx->cr0 & X86_CR0_NE)); 7247 7248 Log4(("hmR0SvmExitFerrFreeze: Raising IRQ 13 in response to #FERR\n")); 7249 return PDMIsaSetIrq(pVCpu->CTX_SUFF(pVM), 13 /* u8Irq */, 1 /* u8Level */, 0 /* uTagSrc */); 7250 } 7251 7252 7253 /** 7237 7254 * \#VMEXIT handler for IRET (SVM_EXIT_IRET). Conditional \#VMEXIT. 7238 7255 */ … … 7441 7458 if (RT_SUCCESS(rc)) 7442 7459 { 7443 #ifdef VBOX_WITH_NESTED_HWVIRT7444 if ( CPUMIsGuestInSvmNestedHwVirtMode(pCtx)7445 && HMIsGuestSvmCtrlInterceptSet(pVCpu, pCtx, SVM_CTRL_INTERCEPT_FERR_FREEZE))7446 {7447 return VBOXSTRICTRC_TODO(IEMExecSvmVmexit(pVCpu, SVM_EXIT_FERR_FREEZE, 0, 0));7448 }7449 #endif7450 7460 /* Convert a #MF into a FERR -> IRQ 13. See @bugref{6117}. */ 7451 7461 rc = PDMIsaSetIrq(pVCpu->CTX_SUFF(pVM), 13 /* u8Irq */, 1 /* u8Level */, 0 /* uTagSrc */);
Note:
See TracChangeset
for help on using the changeset viewer.