diff options
| author | Hartmut Brandt <harti@FreeBSD.org> | 2003-02-04 16:30:27 +0000 |
|---|---|---|
| committer | Hartmut Brandt <harti@FreeBSD.org> | 2003-02-04 16:30:27 +0000 |
| commit | e557905435d97c46c8ededec918bf25004db0469 (patch) | |
| tree | 456b763a94213088811e390d3dfe4a45d7fa5de6 /sys/powerpc | |
| parent | 5a63c107db5308d1300075318ef08dc801b58154 (diff) | |
Notes
Diffstat (limited to 'sys/powerpc')
| -rw-r--r-- | sys/powerpc/powerpc/busdma_machdep.c | 20 |
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) { |
