Changeset 32707 in vbox for trunk/src/VBox/Runtime/r0drv/linux
- Timestamp:
- Sep 23, 2010 10:15:08 AM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 66136
- Location:
- trunk/src/VBox/Runtime/r0drv/linux
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c
r32674 r32707 111 111 * OS specific allocation function. 112 112 */ 113 PRTMEMHDR rtR0MemAlloc(size_t cb, uint32_t fFlags)113 int rtR0MemAllocEx(size_t cb, uint32_t fFlags, PRTMEMHDR *ppHdr) 114 114 { 115 115 PRTMEMHDR pHdr; … … 120 120 if (fFlags & RTMEMHDR_FLAG_EXEC) 121 121 { 122 AssertReturn(!(fFlags & RTMEMHDR_FLAG_ANY_CTX), NULL); 122 if (fFlags & RTMEMHDR_FLAG_ANY_CTX) 123 return VERR_NOT_SUPPORTED; 123 124 124 125 #if defined(RT_ARCH_AMD64) … … 149 150 { 150 151 fFlags |= RTMEMHDR_FLAG_KMALLOC; 151 pHdr = kmalloc(cb + sizeof(*pHdr), GFP_KERNEL); 152 pHdr = kmalloc(cb + sizeof(*pHdr), 153 (fFlags & RTMEMHDR_FLAG_ANY_CTX_ALLOC) ? GFP_ATOMIC : GFP_KERNEL); 152 154 } 153 155 else 154 156 pHdr = vmalloc(cb + sizeof(*pHdr)); 155 157 } 158 if (RT_UNLIKELY(!pHdr)) 159 return VERR_NO_MEMORY; 156 160 157 161 /* 158 162 * Initialize. 159 163 */ 160 if (pHdr) 161 { 162 pHdr->u32Magic = RTMEMHDR_MAGIC; 163 pHdr->fFlags = fFlags; 164 pHdr->cb = cb; 165 pHdr->cbReq = cb; 166 } 167 return pHdr; 164 pHdr->u32Magic = RTMEMHDR_MAGIC; 165 pHdr->fFlags = fFlags; 166 pHdr->cb = cb; 167 pHdr->cbReq = cb; 168 169 *ppHdr = pHdr; 170 return VINF_SUCCESS; 168 171 } 169 172 -
trunk/src/VBox/Runtime/r0drv/linux/timer-r0drv-linux.c
r32670 r32707 434 434 */ 435 435 ASMAtomicWriteU32(&pTimer->u32Magic, ~RTTIMER_MAGIC); 436 #if 0 /*fixme*/ 437 rtR0MemFreeNoCtxCheck(pTimer); 438 #else 439 RTMemFree(pTimer); 440 #endif 436 RTMemFreeEx(pTimer, RT_OFFSETOF(RTTIMER, aSubTimers[pTimer->cCpus])); 441 437 if (hSpinlock != NIL_RTSPINLOCK) 442 438 RTSpinlockDestroy(hSpinlock); … … 1393 1389 RTCPUID iCpu; 1394 1390 unsigned cCpus; 1391 int rc; 1395 1392 1396 1393 *ppTimer = NULL; … … 1419 1416 #endif 1420 1417 1421 pTimer = (PRTTIMER)RTMemAllocZ(RT_OFFSETOF(RTTIMER, aSubTimers[cCpus])); 1422 if (!pTimer) 1423 return VERR_NO_MEMORY; 1418 rc = RTMemAllocEx(RT_OFFSETOF(RTTIMER, aSubTimers[cCpus]), 0, 1419 RTMEMALLOCEX_FLAGS_ZEROED | RTMEMALLOCEX_FLAGS_ANY_CTX_FREE, (void **)&pTimer); 1420 if (RT_FAILURE(rc)) 1421 return rc; 1424 1422 1425 1423 /*
Note:
See TracChangeset
for help on using the changeset viewer.