svn commit: r282120 - in head/sys: arm/arm mips/mips powerpc/powerpc x86/x86
Hans Petter Selasky
hselasky at FreeBSD.org
Tue Apr 28 06:12:40 UTC 2015
Author: hselasky
Date: Tue Apr 28 06:12:37 2015
New Revision: 282120
URL: https://svnweb.freebsd.org/changeset/base/282120
Log:
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 at gmail.com>
MFC after: 1 week
Reviewed by: jhb@
Modified:
head/sys/arm/arm/busdma_machdep-v6.c
head/sys/arm/arm/busdma_machdep.c
head/sys/mips/mips/busdma_machdep.c
head/sys/powerpc/powerpc/busdma_machdep.c
head/sys/x86/x86/busdma_bounce.c
Modified: head/sys/arm/arm/busdma_machdep-v6.c
==============================================================================
--- head/sys/arm/arm/busdma_machdep-v6.c Tue Apr 28 03:24:27 2015 (r282119)
+++ head/sys/arm/arm/busdma_machdep-v6.c Tue Apr 28 06:12:37 2015 (r282120)
@@ -1685,8 +1685,8 @@ add_bounce_page(bus_dma_tag_t dmat, bus_
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;
Modified: head/sys/arm/arm/busdma_machdep.c
==============================================================================
--- head/sys/arm/arm/busdma_machdep.c Tue Apr 28 03:24:27 2015 (r282119)
+++ head/sys/arm/arm/busdma_machdep.c Tue Apr 28 06:12:37 2015 (r282120)
@@ -1441,8 +1441,8 @@ add_bounce_page(bus_dma_tag_t dmat, bus_
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;
Modified: head/sys/mips/mips/busdma_machdep.c
==============================================================================
--- head/sys/mips/mips/busdma_machdep.c Tue Apr 28 03:24:27 2015 (r282119)
+++ head/sys/mips/mips/busdma_machdep.c Tue Apr 28 06:12:37 2015 (r282120)
@@ -1359,8 +1359,8 @@ add_bounce_page(bus_dma_tag_t dmat, bus_
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;
Modified: head/sys/powerpc/powerpc/busdma_machdep.c
==============================================================================
--- head/sys/powerpc/powerpc/busdma_machdep.c Tue Apr 28 03:24:27 2015 (r282119)
+++ head/sys/powerpc/powerpc/busdma_machdep.c Tue Apr 28 06:12:37 2015 (r282120)
@@ -1121,8 +1121,8 @@ add_bounce_page(bus_dma_tag_t dmat, bus_
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;
Modified: head/sys/x86/x86/busdma_bounce.c
==============================================================================
--- head/sys/x86/x86/busdma_bounce.c Tue Apr 28 03:24:27 2015 (r282119)
+++ head/sys/x86/x86/busdma_bounce.c Tue Apr 28 06:12:37 2015 (r282120)
@@ -994,8 +994,8 @@ add_bounce_page(bus_dma_tag_t dmat, bus_
if (dmat->common.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;
More information about the svn-src-all
mailing list