summaryrefslogtreecommitdiffstats
path: root/sys/i386
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2008-07-15 03:34:49 +0000
committeralc <alc@FreeBSD.org>2008-07-15 03:34:49 +0000
commitd4de04e9b12b0c35662441b280530b24f1a04472 (patch)
tree108e4a91f6248d3c2f096fa2c7182df936169673 /sys/i386
parenteae79cfa0fb80e366fc602240d0ef1774ba118eb (diff)
downloadFreeBSD-src-d4de04e9b12b0c35662441b280530b24f1a04472.zip
FreeBSD-src-d4de04e9b12b0c35662441b280530b24f1a04472.tar.gz
Update bus_dmamem_alloc()'s first call to malloc() such that M_WAITOK is
specified when appropriate. Reviewed by: scottl
Diffstat (limited to 'sys/i386')
-rw-r--r--sys/i386/i386/busdma_machdep.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/i386/i386/busdma_machdep.c b/sys/i386/i386/busdma_machdep.c
index fc3966e..7069d2d 100644
--- a/sys/i386/i386/busdma_machdep.c
+++ b/sys/i386/i386/busdma_machdep.c
@@ -488,8 +488,6 @@ bus_dmamem_alloc(bus_dma_tag_t dmat, void** vaddr, int flags,
mflags = M_NOWAIT;
else
mflags = M_WAITOK;
- if (flags & BUS_DMA_ZERO)
- mflags |= M_ZERO;
/* If we succeed, no mapping/bouncing will be required */
*mapp = NULL;
@@ -497,13 +495,15 @@ bus_dmamem_alloc(bus_dma_tag_t dmat, void** vaddr, int flags,
if (dmat->segments == NULL) {
dmat->segments = (bus_dma_segment_t *)malloc(
sizeof(bus_dma_segment_t) * dmat->nsegments, M_DEVBUF,
- M_NOWAIT);
+ mflags);
if (dmat->segments == NULL) {
CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d",
__func__, dmat, dmat->flags, ENOMEM);
return (ENOMEM);
}
}
+ if (flags & BUS_DMA_ZERO)
+ mflags |= M_ZERO;
/*
* XXX:
OpenPOWER on IntegriCloud