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) &&
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to