summaryrefslogtreecommitdiffstats
path: root/sys/powerpc
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2015-04-28 06:12:37 +0000
committerhselasky <hselasky@FreeBSD.org>2015-04-28 06:12:37 +0000
commitfb48ac4acc73d3c6ab9b2f2f7c47ff8a1d76df31 (patch)
tree90c664e4d1fb8fc6570553011e4f25c073ac89c9 /sys/powerpc
parent738ac09f0152527269573e45458f0d11e013656f (diff)
downloadFreeBSD-src-fb48ac4acc73d3c6ab9b2f2f7c47ff8a1d76df31.zip
FreeBSD-src-fb48ac4acc73d3c6ab9b2f2f7c47ff8a1d76df31.tar.gz
The add_bounce_page() function can be called when loading physical
pages which pass a NULL virtual address. If the BUS_DMA_KEEP_PG_OFFSET flag is set, use the physical address to compute the page offset instead. The physical address should always be valid when adding bounce pages and should contain the same page offset like the virtual address. Submitted by: Svatopluk Kraus <onwahe@gmail.com> MFC after: 1 week Reviewed by: jhb@
Diffstat (limited to 'sys/powerpc')
-rw-r--r--sys/powerpc/powerpc/busdma_machdep.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/powerpc/powerpc/busdma_machdep.c b/sys/powerpc/powerpc/busdma_machdep.c
index bd226c8..9ea51ce 100644
--- a/sys/powerpc/powerpc/busdma_machdep.c
+++ b/sys/powerpc/powerpc/busdma_machdep.c
@@ -1121,8 +1121,8 @@ add_bounce_page(bus_dma_tag_t dmat, bus_dmamap_t map, vm_offset_t vaddr,
if (dmat->flags & BUS_DMA_KEEP_PG_OFFSET) {
/* Page offset needs to be preserved. */
- bpage->vaddr |= vaddr & PAGE_MASK;
- bpage->busaddr |= vaddr & PAGE_MASK;
+ bpage->vaddr |= addr & PAGE_MASK;
+ bpage->busaddr |= addr & PAGE_MASK;
}
bpage->datavaddr = vaddr;
bpage->dataaddr = addr;
OpenPOWER on IntegriCloud