From: Sepherosa Ziehau Date: Sun, 7 Oct 2012 04:40:57 +0000 (+0800) Subject: busdma: Utilize kmalloc_powerof2() X-Git-Tag: v3.2.0~10 X-Git-Url: http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff_plain/8e469b97783c14679448b8ed428d169b234b5108 busdma: Utilize kmalloc_powerof2() --- diff --git a/sys/platform/pc32/i386/busdma_machdep.c b/sys/platform/pc32/i386/busdma_machdep.c index a8cff4e..35be77b 100644 --- a/sys/platform/pc32/i386/busdma_machdep.c +++ b/sys/platform/pc32/i386/busdma_machdep.c @@ -573,13 +573,8 @@ bus_dmamem_alloc(bus_dma_tag_t dmat, void **vaddr, int flags, */ maxsize = check_kmalloc(dmat, *vaddr, 0); if (maxsize) { - size_t size; - kfree(*vaddr, M_DEVBUF); - /* XXX check for overflow? */ - for (size = 1; size <= maxsize; size <<= 1) - ; - *vaddr = kmalloc(size, M_DEVBUF, mflags); + *vaddr = kmalloc_powerof2(maxsize, M_DEVBUF, mflags); check_kmalloc(dmat, *vaddr, 1); } } else { diff --git a/sys/platform/pc64/x86_64/busdma_machdep.c b/sys/platform/pc64/x86_64/busdma_machdep.c index b94f358..151f9bf 100644 --- a/sys/platform/pc64/x86_64/busdma_machdep.c +++ b/sys/platform/pc64/x86_64/busdma_machdep.c @@ -573,13 +573,8 @@ bus_dmamem_alloc(bus_dma_tag_t dmat, void **vaddr, int flags, */ maxsize = check_kmalloc(dmat, *vaddr, 0); if (maxsize) { - size_t size; - kfree(*vaddr, M_DEVBUF); - /* XXX check for overflow? */ - for (size = 1; size <= maxsize; size <<= 1) - ; - *vaddr = kmalloc(size, M_DEVBUF, mflags); + *vaddr = kmalloc_powerof2(maxsize, M_DEVBUF, mflags); check_kmalloc(dmat, *vaddr, 1); } } else {