In contrast to FreeBSD 4 and 5, our slab allocator does hand out cross-page
authorJoerg Sonnenberger <joerg@dragonflybsd.org>
Mon, 19 Apr 2004 13:37:43 +0000 (13:37 +0000)
committerJoerg Sonnenberger <joerg@dragonflybsd.org>
Mon, 19 Apr 2004 13:37:43 +0000 (13:37 +0000)
commit68aa5c006a8dcccba40b95f804362730250bf9e3
treed0d269eee4a206d6dd02c17fccf8f719eb5394e5
parentef9625753c8a74cc94af8720489bc900c32d3390
In contrast to FreeBSD 4 and 5, our slab allocator does hand out cross-page
allocations. This broke bus_dmamem_alloc, which depends on allocation of
size < PAGE_SIZE to not cross pages.

As a temporary workaround, bus_dmamem_alloc checks explicitly wether an
allocation crossed page boundaries and retries the allocation with size
rounded up to the next power-of-two.
sys/i386/i386/busdma_machdep.c
sys/platform/pc32/i386/busdma_machdep.c