summaryrefslogtreecommitdiffstats
path: root/sys/x86
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2013-08-07 06:21:20 +0000
committerjeff <jeff@FreeBSD.org>2013-08-07 06:21:20 +0000
commitde4ecca21340ce4d0bf9182cac133c14e031218e (patch)
tree950bad07f0aeeeae78036d82b9aa11ae998c3654 /sys/x86
parente141f5c0bac3839e4886a26e1ba796f4e46e6455 (diff)
downloadFreeBSD-src-de4ecca21340ce4d0bf9182cac133c14e031218e.zip
FreeBSD-src-de4ecca21340ce4d0bf9182cac133c14e031218e.tar.gz
Replace kernel virtual address space allocation with vmem. This provides
transparent layering and better fragmentation. - Normalize functions that allocate memory to use kmem_* - Those that allocate address space are named kva_* - Those that operate on maps are named kmap_* - Implement recursive allocation handling for kmem_arena in vmem. Reviewed by: alc Tested by: pho Sponsored by: EMC / Isilon Storage Division
Diffstat (limited to 'sys/x86')
-rw-r--r--sys/x86/x86/busdma_machdep.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/x86/x86/busdma_machdep.c b/sys/x86/x86/busdma_machdep.c
index a4de15a..0b59616 100644
--- a/sys/x86/x86/busdma_machdep.c
+++ b/sys/x86/x86/busdma_machdep.c
@@ -544,11 +544,11 @@ bus_dmamem_alloc(bus_dma_tag_t dmat, void** vaddr, int flags,
dmat->alignment <= PAGE_SIZE &&
(dmat->boundary == 0 || dmat->boundary >= dmat->lowaddr)) {
/* Page-based multi-segment allocations allowed */
- *vaddr = (void *)kmem_alloc_attr(kernel_map, dmat->maxsize,
+ *vaddr = (void *)kmem_alloc_attr(kernel_arena, dmat->maxsize,
mflags, 0ul, dmat->lowaddr, attr);
*mapp = &contig_dmamap;
} else {
- *vaddr = (void *)kmem_alloc_contig(kernel_map, dmat->maxsize,
+ *vaddr = (void *)kmem_alloc_contig(kernel_arena, dmat->maxsize,
mflags, 0ul, dmat->lowaddr, dmat->alignment ?
dmat->alignment : 1ul, dmat->boundary, attr);
*mapp = &contig_dmamap;
@@ -582,7 +582,7 @@ bus_dmamem_free(bus_dma_tag_t dmat, void *vaddr, bus_dmamap_t map)
if (map == NULL)
free(vaddr, M_DEVBUF);
else
- kmem_free(kernel_map, (vm_offset_t)vaddr, dmat->maxsize);
+ kmem_free(kernel_arena, (vm_offset_t)vaddr, dmat->maxsize);
CTR3(KTR_BUSDMA, "%s: tag %p flags 0x%x", __func__, dmat, dmat->flags);
}
OpenPOWER on IntegriCloud