svn commit: r266745 - head/sys/x86/x86
Scott Long
scottl at FreeBSD.org
Tue May 27 14:06:24 UTC 2014
Author: scottl
Date: Tue May 27 14:06:23 2014
New Revision: 266745
URL: http://svnweb.freebsd.org/changeset/base/266745
Log:
Revert r266481. It was based on faulty analysis of the problem. A correct
fix is forthcoming.
Obtained from: Netflix, Inc.
Modified:
head/sys/x86/x86/busdma_bounce.c
Modified: head/sys/x86/x86/busdma_bounce.c
==============================================================================
--- head/sys/x86/x86/busdma_bounce.c Tue May 27 13:35:31 2014 (r266744)
+++ head/sys/x86/x86/busdma_bounce.c Tue May 27 14:06:23 2014 (r266745)
@@ -172,35 +172,12 @@ bounce_bus_dma_tag_create(bus_dma_tag_t
newtag->map_count = 0;
newtag->segments = NULL;
- /*
- * Bouncing might be needed if there's a filter.
- * XXX Filters are likely broken as there's no way to
- * guarantee that bounce pages will also satisfy the
- * filter requirement.
- */
if (parent != NULL && ((newtag->common.filter != NULL) ||
((parent->common.flags & BUS_DMA_COULD_BOUNCE) != 0)))
newtag->common.flags |= BUS_DMA_COULD_BOUNCE;
- /*
- * Bouncing might be needed if there's an upper memory
- * restriction.
- */
- if (newtag->common.lowaddr < ptoa((vm_paddr_t)Maxmem))
- newtag->common.flags |= BUS_DMA_COULD_BOUNCE;
-
- /*
- * Bouncing might be needed if there's an alignment
- * restriction that can't be satisfied by breaking up
- * the segment.
- * XXX Need to consider non-natural alignment.
- * XXX Static allocations that tie to bus_dmamem_alloc()
- * will likely pass this test and be penalized with
- * the COULD_BOUNCE flag. Should probably have
- * bus_dmamem_alloc() clear this flag.
- */
- if ((newtag->common.nsegments <= 1) &&
- (newtag->common.alignment > 1))
+ if (newtag->common.lowaddr < ptoa((vm_paddr_t)Maxmem) ||
+ newtag->common.alignment > 1)
newtag->common.flags |= BUS_DMA_COULD_BOUNCE;
if (((newtag->common.flags & BUS_DMA_COULD_BOUNCE) != 0) &&
More information about the svn-src-head
mailing list