Changeset 64310 in vbox for trunk/src/VBox
- Timestamp:
- Oct 18, 2016 10:23:35 AM (9 years ago)
- svn:sync-xref-src-repo-rev:
- 111366
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/src/VBox/VMM/VMMAll/GIMAllKvm.cpp ¶
r62653 r64310 275 275 276 276 /* Is the system-time struct. already enabled? If so, get flags that need preserving. */ 277 /*uint8_t fFlags = 0; - unused */278 277 GIMKVMSYSTEMTIME SystemTime; 279 278 RT_ZERO(SystemTime); … … 294 293 { 295 294 pKvmCpu->u64SystemTimeMsr = 0; 296 return VERR_CPUM_RAISE_GP_0;295 /* We shouldn't throw a #GP(0) here for buggy guests (neither does KVM apparently), see @bugref{8627}. */ 297 296 } 298 297 return VINF_SUCCESS; -
TabularUnified trunk/src/VBox/VMM/VMMR3/GIMKvm.cpp ¶
r62641 r64310 284 284 { 285 285 PCGIMKVMCPU pKvmCpu = &pVM->aCpus[i].gim.s.u.KvmCpu; 286 287 /* Guest may alter flags (namely GIM_KVM_SYSTEM_TIME_FLAGS_GUEST_PAUSED bit). So re-read them from guest-memory. */288 GIMKVMSYSTEMTIME SystemTime;289 RT_ZERO(SystemTime);290 if (MSR_GIM_KVM_SYSTEM_TIME_IS_ENABLED(pKvmCpu->u64SystemTimeMsr))291 {292 int rc = PGMPhysSimpleReadGCPhys(pVM, &SystemTime, pKvmCpu->GCPhysSystemTime, sizeof(GIMKVMSYSTEMTIME));293 AssertRCReturn(rc, rc);294 }295 296 286 SSMR3PutU64(pSSM, pKvmCpu->u64SystemTimeMsr); 297 287 SSMR3PutU64(pSSM, pKvmCpu->uTsc); … … 299 289 SSMR3PutGCPhys(pSSM, pKvmCpu->GCPhysSystemTime); 300 290 SSMR3PutU32(pSSM, pKvmCpu->u32SystemTimeVersion); 301 SSMR3PutU8(pSSM, SystemTime.fFlags);291 SSMR3PutU8(pSSM, pKvmCpu->fSystemTimeFlags); 302 292 } 303 293 … … 359 349 Assert(!TMVirtualIsTicking(pVM)); /* paranoia. */ 360 350 Assert(!TMCpuTickIsTicking(pVCpu)); 361 rc = gimR3KvmEnableSystemTime(pVM, pVCpu); 362 AssertRCReturn(rc, rc); 351 gimR3KvmEnableSystemTime(pVM, pVCpu); 363 352 } 364 353 }
Note:
See TracChangeset
for help on using the changeset viewer.