Changeset 11141 in vbox for trunk/src/VBox
- Timestamp:
- Aug 5, 2008 5:16:08 PM (17 years ago)
- svn:sync-xref-src-repo-rev:
- 34117
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMM.cpp
r10720 r11141 248 248 if (rc == VERR_PGM_INTERMEDIATE_PAGING_CONFLICT) 249 249 { 250 /* try more allocations. */ 251 struct 250 /* try more allocations - Solaris */ 251 const unsigned cTries = 4112; 252 struct VMMInitBadTry 252 253 { 253 254 RTR0PTR pvR0; … … 255 256 RTHCPHYS HCPhys; 256 257 RTUINT cb; 257 } aBadTries[128]; 258 } *paBadTries = (struct VMMInitBadTry *)RTMemTmpAlloc(sizeof(*paBadTries) * cTries); 259 AssertReturn(paBadTries, VERR_NO_TMP_MEMORY); 258 260 unsigned i = 0; 259 261 do 260 262 { 261 aBadTries[i].pvR3 = pVM->vmm.s.pvHCCoreCodeR3;262 aBadTries[i].pvR0 = pVM->vmm.s.pvHCCoreCodeR0;263 aBadTries[i].HCPhys = pVM->vmm.s.HCPhysCoreCode;263 paBadTries[i].pvR3 = pVM->vmm.s.pvHCCoreCodeR3; 264 paBadTries[i].pvR0 = pVM->vmm.s.pvHCCoreCodeR0; 265 paBadTries[i].HCPhys = pVM->vmm.s.HCPhysCoreCode; 264 266 i++; 265 267 pVM->vmm.s.pvHCCoreCodeR0 = NIL_RTR0PTR; … … 270 272 rc = PGMR3MapIntermediate(pVM, pVM->vmm.s.pvHCCoreCodeR0, pVM->vmm.s.HCPhysCoreCode, cbCoreCode); 271 273 } while ( rc == VERR_PGM_INTERMEDIATE_PAGING_CONFLICT 272 && i < RT_ELEMENTS(aBadTries)- 1);274 && i < cTries - 1); 273 275 274 276 /* cleanup */ 275 277 if (VBOX_FAILURE(rc)) 276 278 { 277 aBadTries[i].pvR3 = pVM->vmm.s.pvHCCoreCodeR3;278 aBadTries[i].pvR0 = pVM->vmm.s.pvHCCoreCodeR0;279 aBadTries[i].HCPhys = pVM->vmm.s.HCPhysCoreCode;280 aBadTries[i].cb = pVM->vmm.s.cbCoreCode;279 paBadTries[i].pvR3 = pVM->vmm.s.pvHCCoreCodeR3; 280 paBadTries[i].pvR0 = pVM->vmm.s.pvHCCoreCodeR0; 281 paBadTries[i].HCPhys = pVM->vmm.s.HCPhysCoreCode; 282 paBadTries[i].cb = pVM->vmm.s.cbCoreCode; 281 283 i++; 282 284 LogRel(("Failed to allocated and map core code: rc=%Vrc\n", rc)); … … 285 287 { 286 288 LogRel(("Core code alloc attempt #%d: pvR3=%p pvR0=%p HCPhys=%VHp\n", 287 i, aBadTries[i].pvR3, aBadTries[i].pvR0, aBadTries[i].HCPhys)); 288 SUPContFree(aBadTries[i].pvR3, aBadTries[i].cb >> PAGE_SHIFT); 289 } 289 i, paBadTries[i].pvR3, paBadTries[i].pvR0, paBadTries[i].HCPhys)); 290 SUPContFree(paBadTries[i].pvR3, paBadTries[i].cb >> PAGE_SHIFT); 291 } 292 RTMemTmpFree(paBadTries); 290 293 } 291 294 }
Note:
See TracChangeset
for help on using the changeset viewer.