diff options
Diffstat (limited to 'sys/amd64/amd64/machdep.c')
-rw-r--r-- | sys/amd64/amd64/machdep.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c index 7647877..5e0dcba 100644 --- a/sys/amd64/amd64/machdep.c +++ b/sys/amd64/amd64/machdep.c @@ -386,18 +386,16 @@ again: (16*(ARG_MAX+(PAGE_SIZE*3)))); /* - * Finally, allocate mbuf pool. Since mclrefcnt is an off-size - * we use the more space efficient malloc in place of kmem_alloc. + * Finally, allocate mbuf pool. */ { vm_offset_t mb_map_size; - mb_map_size = nmbufs * MSIZE + nmbclusters * MCLBYTES; + mb_map_size = nmbufs * MSIZE + nmbclusters * MCLBYTES + + (nmbclusters + nmbufs / 4) * sizeof(union mext_refcnt); mb_map_size = roundup2(mb_map_size, max(MCLBYTES, PAGE_SIZE)); - mclrefcnt = malloc(mb_map_size / MCLBYTES, M_MBUF, M_NOWAIT); - bzero(mclrefcnt, mb_map_size / MCLBYTES); - mb_map = kmem_suballoc(kmem_map, (vm_offset_t *)&mbutl, &maxaddr, - mb_map_size); + mb_map = kmem_suballoc(kmem_map, (vm_offset_t *)&mbutl, + &maxaddr, mb_map_size); mb_map->system_map = 1; } |