svn commit: r282507 - in stable/9/sys: arm/arm ia64/ia64 mips/mips powerpc/powerpc x86/x86

Hans Petter Selasky hselasky at FreeBSD.org
Tue May 5 19:52:24 UTC 2015


Author: hselasky
Date: Tue May  5 19:52:22 2015
New Revision: 282507
URL: https://svnweb.freebsd.org/changeset/base/282507

Log:
  MFC r282120:
  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>
  Reviewed by:	jhb@

Modified:
  stable/9/sys/arm/arm/busdma_machdep.c
  stable/9/sys/ia64/ia64/busdma_machdep.c
  stable/9/sys/mips/mips/busdma_machdep.c
  stable/9/sys/powerpc/powerpc/busdma_machdep.c
  stable/9/sys/x86/x86/busdma_machdep.c
Directory Properties:
  stable/9/sys/   (props changed)

Modified: stable/9/sys/arm/arm/busdma_machdep.c
==============================================================================
--- stable/9/sys/arm/arm/busdma_machdep.c	Tue May  5 19:47:17 2015	(r282506)
+++ stable/9/sys/arm/arm/busdma_machdep.c	Tue May  5 19:52:22 2015	(r282507)
@@ -1449,8 +1449,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: stable/9/sys/ia64/ia64/busdma_machdep.c
==============================================================================
--- stable/9/sys/ia64/ia64/busdma_machdep.c	Tue May  5 19:47:17 2015	(r282506)
+++ stable/9/sys/ia64/ia64/busdma_machdep.c	Tue May  5 19:52:22 2015	(r282507)
@@ -899,8 +899,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: stable/9/sys/mips/mips/busdma_machdep.c
==============================================================================
--- stable/9/sys/mips/mips/busdma_machdep.c	Tue May  5 19:47:17 2015	(r282506)
+++ stable/9/sys/mips/mips/busdma_machdep.c	Tue May  5 19:52:22 2015	(r282507)
@@ -1349,8 +1349,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: stable/9/sys/powerpc/powerpc/busdma_machdep.c
==============================================================================
--- stable/9/sys/powerpc/powerpc/busdma_machdep.c	Tue May  5 19:47:17 2015	(r282506)
+++ stable/9/sys/powerpc/powerpc/busdma_machdep.c	Tue May  5 19:52:22 2015	(r282507)
@@ -1108,8 +1108,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: stable/9/sys/x86/x86/busdma_machdep.c
==============================================================================
--- stable/9/sys/x86/x86/busdma_machdep.c	Tue May  5 19:47:17 2015	(r282506)
+++ stable/9/sys/x86/x86/busdma_machdep.c	Tue May  5 19:52:22 2015	(r282507)
@@ -1134,8 +1134,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;


More information about the svn-src-all mailing list