Changeset 103194 in vbox for trunk/src/VBox/VMM/VMMR3
- Timestamp:
- Feb 5, 2024 7:23:40 AM (12 months ago)
- Location:
- trunk/src/VBox/VMM/VMMR3
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/EM.cpp
r102977 r103194 1850 1850 # endif 1851 1851 { 1852 rc2 = TRPMAssertTrap(pVCpu, X86_XCPT_NMI, TRPM_ TRAP);1852 rc2 = TRPMAssertTrap(pVCpu, X86_XCPT_NMI, TRPM_NMI); 1853 1853 if (rc2 == VINF_SUCCESS) 1854 1854 { -
trunk/src/VBox/VMM/VMMR3/TRPM.cpp
r100140 r103194 114 114 *********************************************************************************************************************************/ 115 115 /** TRPM saved state version. */ 116 #define TRPM_SAVED_STATE_VERSION 10 116 #define TRPM_SAVED_STATE_VERSION 11 117 #define TRPM_SAVED_STATE_VERSION_PRE_NMI 10 /* NMI TRPM event type bumped the version */ 117 118 #define TRPM_SAVED_STATE_VERSION_PRE_ICEBP 9 /* INT1/ICEBP support bumped the version */ 118 119 #define TRPM_SAVED_STATE_VERSION_UNI 8 /* SMP support bumped the version */ … … 283 284 */ 284 285 if ( uVersion != TRPM_SAVED_STATE_VERSION 286 && uVersion != TRPM_SAVED_STATE_VERSION_PRE_NMI 285 287 && uVersion != TRPM_SAVED_STATE_VERSION_PRE_ICEBP 286 288 && uVersion != TRPM_SAVED_STATE_VERSION_UNI) … … 290 292 } 291 293 292 if (uVersion == TRPM_SAVED_STATE_VERSION)294 if (uVersion >= TRPM_SAVED_STATE_VERSION_PRE_NMI) 293 295 { 294 296 for (VMCPUID i = 0; i < pVM->cCpus; i++) … … 350 352 */ 351 353 SSMR3SkipToEndOfUnit(pSSM); 354 } 355 356 /* 357 * For saved-state verions prior to introducing NMI as a separate type, convert 358 * traps with vector 2 as NMI since the rest of VirtualBox code now expects this. 359 */ 360 if (uVersion <= TRPM_SAVED_STATE_VERSION_PRE_NMI) 361 { 362 for (VMCPUID i = 0; i < pVM->cCpus; i++) 363 { 364 PTRPMCPU pTrpmCpu = &pVM->apCpusR3[i]->trpm.s; 365 AssertLogRelMsgReturn(pTrpmCpu->enmActiveType != TRPM_NMI, 366 ("TRPM event type (%#RX32) invalid for saved-state version %u!", 367 pTrpmCpu->enmActiveType, uVersion), VERR_SSM_ENUM_VALUE_OUT_OF_RANGE); 368 if ( pTrpmCpu->uActiveVector == X86_XCPT_NMI 369 && pTrpmCpu->enmActiveType == TRPM_TRAP) 370 pTrpmCpu->enmActiveType = TRPM_NMI; 371 } 352 372 } 353 373
Note:
See TracChangeset
for help on using the changeset viewer.