summaryrefslogtreecommitdiffstats
path: root/sys/amd64
diff options
context:
space:
mode:
authorscottl <scottl@FreeBSD.org>2004-11-19 17:51:29 +0000
committerscottl <scottl@FreeBSD.org>2004-11-19 17:51:29 +0000
commit34b1372302db893de7631a54497bcf488be42579 (patch)
tree8a33e180e0af60c05f87c399698ed8ebeb38d34d /sys/amd64
parent6c9183a0b33d821b1c84f8f014aaa17e791968b3 (diff)
downloadFreeBSD-src-34b1372302db893de7631a54497bcf488be42579.zip
FreeBSD-src-34b1372302db893de7631a54497bcf488be42579.tar.gz
Revert part of rev 1.56. Tag boundaries are handled by splitting segments,
not through bouncing.
Diffstat (limited to 'sys/amd64')
-rw-r--r--sys/amd64/amd64/busdma_machdep.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/sys/amd64/amd64/busdma_machdep.c b/sys/amd64/amd64/busdma_machdep.c
index 6a47246..67f8123 100644
--- a/sys/amd64/amd64/busdma_machdep.c
+++ b/sys/amd64/amd64/busdma_machdep.c
@@ -135,8 +135,7 @@ static int reserve_bounce_pages(bus_dma_tag_t dmat, bus_dmamap_t map,
static bus_addr_t add_bounce_page(bus_dma_tag_t dmat, bus_dmamap_t map,
vm_offset_t vaddr, bus_size_t size);
static void free_bounce_page(bus_dma_tag_t dmat, struct bounce_page *bpage);
-static __inline int run_filter(bus_dma_tag_t dmat, bus_addr_t paddr,
- bus_size_t len);
+static __inline int run_filter(bus_dma_tag_t dmat, bus_addr_t paddr);
/*
* Return true if a match is made.
@@ -147,18 +146,15 @@ static __inline int run_filter(bus_dma_tag_t dmat, bus_addr_t paddr,
* to check for a match, if there is no filter callback then assume a match.
*/
static __inline int
-run_filter(bus_dma_tag_t dmat, bus_addr_t paddr, bus_size_t len)
+run_filter(bus_dma_tag_t dmat, bus_addr_t paddr)
{
- bus_size_t bndy;
int retval;
retval = 0;
- bndy = dmat->boundary;
do {
if (((paddr > dmat->lowaddr && paddr <= dmat->highaddr)
- || ((paddr & (dmat->alignment - 1)) != 0)
- || ((paddr & bndy) != ((paddr + len) & bndy)))
+ || ((paddr & (dmat->alignment - 1)) != 0))
&& (dmat->filter == NULL
|| (*dmat->filter)(dmat->filterarg, paddr) != 0))
retval = 1;
@@ -586,7 +582,7 @@ _bus_dmamap_load_buffer(bus_dma_tag_t dmat,
while (vaddr < vendaddr) {
paddr = pmap_kextract(vaddr);
- if (run_filter(dmat, paddr, 0) != 0) {
+ if (run_filter(dmat, paddr) != 0) {
needbounce = 1;
map->pagesneeded++;
}
@@ -647,7 +643,7 @@ _bus_dmamap_load_buffer(bus_dma_tag_t dmat,
sgsize = (baddr - curaddr);
}
- if (map->pagesneeded != 0 && run_filter(dmat, curaddr, sgsize))
+ if (map->pagesneeded != 0 && run_filter(dmat, curaddr))
curaddr = add_bounce_page(dmat, map, vaddr, sgsize);
/*
OpenPOWER on IntegriCloud