--- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c.orig2 2011-11-30 19:54:23.959052314 +0200 +++ src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c 2011-12-01 00:35:10.301214955 +0200 @@ -387,6 +387,7 @@ return VERR_NO_MEMORY; } +#if 0 static void rtR0MemObjFreeBSDPhysPageInit(vm_page_t pPage, vm_pindex_t iPage) { pPage->wire_count = 1; @@ -400,6 +401,7 @@ Assert(pPage->flags & PG_UNMANAGED != 0); #endif } +#endif static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJTYPE enmType, size_t cb, @@ -425,12 +427,15 @@ if (fContiguous) { - vm_page_t pPage = vm_phys_alloc_contig(cPages, 0, VmPhysAddrHigh, uAlignment, 0); + vm_page_t pPage = vm_page_alloc_contig(NULL, 0, VM_ALLOC_NORMAL | VM_ALLOC_WIRED | VM_ALLOC_NOOBJ, + cPages, 0, VmPhysAddrHigh, uAlignment, 0, VM_MEMATTR_DEFAULT); if (pPage) for (uint32_t iPage = 0; iPage < cPages; iPage++) { +#if 0 rtR0MemObjFreeBSDPhysPageInit(&pPage[iPage], iPage); +#endif pMemFreeBSD->u.Phys.apPages[iPage] = &pPage[iPage]; } else @@ -441,7 +446,8 @@ /* Allocate page by page */ for (uint32_t iPage = 0; iPage < cPages; iPage++) { - vm_page_t pPage = vm_phys_alloc_contig(1, 0, VmPhysAddrHigh, uAlignment, 0); + vm_page_t pPage = vm_page_alloc_contig(NULL, iPage, VM_ALLOC_NORMAL | VM_ALLOC_WIRED | VM_ALLOC_NOOBJ, + 1, 0, VmPhysAddrHigh, uAlignment, 0, VM_MEMATTR_DEFAULT); if (!pPage) { @@ -457,7 +463,9 @@ rc = VERR_NO_MEMORY; break; } +#if 0 rtR0MemObjFreeBSDPhysPageInit(pPage, iPage); +#endif pMemFreeBSD->u.Phys.apPages[iPage] = pPage; } }