diff options
author | jhb <jhb@FreeBSD.org> | 2007-11-27 17:28:12 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2007-11-27 17:28:12 +0000 |
commit | 7fe785218b409a5fce43a2ca79739e1599c71591 (patch) | |
tree | f0985e5ee1a2bfe1965388e2711189e15071b712 /sys/ia64 | |
parent | a32c67c9ab76d6bb3fb57b85250e614484fcd907 (diff) | |
download | FreeBSD-src-7fe785218b409a5fce43a2ca79739e1599c71591.zip FreeBSD-src-7fe785218b409a5fce43a2ca79739e1599c71591.tar.gz |
Remove the 'needbounce' variable from the _bus_dmamap_load_buffer()
routine. It is not needed as the existing tests for segment coalescing
already handle bounced addresses and it prevents legal segment coalescing
in certain edge cases.
MFC after: 1 week
Reviewed by: scottl
Diffstat (limited to 'sys/ia64')
-rw-r--r-- | sys/ia64/ia64/busdma_machdep.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/sys/ia64/ia64/busdma_machdep.c b/sys/ia64/ia64/busdma_machdep.c index 5ef2e53..8dd4a9b 100644 --- a/sys/ia64/ia64/busdma_machdep.c +++ b/sys/ia64/ia64/busdma_machdep.c @@ -503,7 +503,6 @@ _bus_dmamap_load_buffer(bus_dma_tag_t dmat, bus_addr_t curaddr, lastaddr, baddr, bmask; vm_offset_t vaddr; bus_addr_t paddr; - int needbounce = 0; int seg; pmap_t pmap; @@ -529,10 +528,8 @@ _bus_dmamap_load_buffer(bus_dma_tag_t dmat, while (vaddr < vendaddr) { paddr = pmap_kextract(vaddr); - if (run_filter(dmat, paddr, 0) != 0) { - needbounce = 1; + if (run_filter(dmat, paddr, 0) != 0) map->pagesneeded++; - } vaddr += PAGE_SIZE; } } @@ -604,7 +601,7 @@ _bus_dmamap_load_buffer(bus_dma_tag_t dmat, segs[seg].ds_len = sgsize; first = 0; } else { - if (!needbounce && curaddr == lastaddr && + if (curaddr == lastaddr && (segs[seg].ds_len + sgsize) <= dmat->maxsegsz && (dmat->boundary == 0 || (segs[seg].ds_addr & bmask) == (curaddr & bmask))) |