summaryrefslogtreecommitdiff
path: root/sys/powerpc
diff options
context:
space:
mode:
authorHartmut Brandt <harti@FreeBSD.org>2003-02-04 16:30:27 +0000
committerHartmut Brandt <harti@FreeBSD.org>2003-02-04 16:30:27 +0000
commite557905435d97c46c8ededec918bf25004db0469 (patch)
tree456b763a94213088811e390d3dfe4a45d7fa5de6 /sys/powerpc
parent5a63c107db5308d1300075318ef08dc801b58154 (diff)
Notes
Diffstat (limited to 'sys/powerpc')
-rw-r--r--sys/powerpc/powerpc/busdma_machdep.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/sys/powerpc/powerpc/busdma_machdep.c b/sys/powerpc/powerpc/busdma_machdep.c
index 4bb5f0cf3ae2..6ab1667af103 100644
--- a/sys/powerpc/powerpc/busdma_machdep.c
+++ b/sys/powerpc/powerpc/busdma_machdep.c
@@ -423,10 +423,12 @@ bus_dmamap_load_mbuf(bus_dma_tag_t dmat, bus_dmamap_t map, struct mbuf *m0,
struct mbuf *m;
for (m = m0; m != NULL && error == 0; m = m->m_next) {
- error = bus_dmamap_load_buffer(dmat, dm_segments,
- m->m_data, m->m_len, NULL, flags,
- &lastaddr, &nsegs, first);
- first = 0;
+ if (m->m_len > 0) {
+ error = bus_dmamap_load_buffer(dmat,
+ dm_segments, m->m_data, m->m_len, NULL,
+ flags, &lastaddr, &nsegs, first);
+ first = 0;
+ }
}
} else {
error = EINVAL;
@@ -483,12 +485,14 @@ bus_dmamap_load_uio(bus_dma_tag_t dmat, bus_dmamap_t map, struct uio *uio,
resid < iov[i].iov_len ? resid : iov[i].iov_len;
caddr_t addr = (caddr_t) iov[i].iov_base;
- error = bus_dmamap_load_buffer(dmat, dm_segments, addr,
- minlen, td, flags, &lastaddr, &nsegs, first);
+ if (minlen > 0) {
+ error = bus_dmamap_load_buffer(dmat, dm_segments, addr,
+ minlen, td, flags, &lastaddr, &nsegs, first);
- first = 0;
+ first = 0;
- resid -= minlen;
+ resid -= minlen;
+ }
}
if (error) {