Author: cognet
Date: Sun Feb  2 22:26:30 2014
New Revision: 261418
URL: http://svnweb.freebsd.org/changeset/base/261418

Log:
  Invalidate cachelines for bounce pages on PREREAD too, there may still be
  stale entries from a previous transfer.

Modified:
  head/sys/arm/arm/busdma_machdep-v6.c

Modified: head/sys/arm/arm/busdma_machdep-v6.c
==============================================================================
--- head/sys/arm/arm/busdma_machdep-v6.c        Sun Feb  2 21:44:04 2014        
(r261417)
+++ head/sys/arm/arm/busdma_machdep-v6.c        Sun Feb  2 22:26:30 2014        
(r261418)
@@ -1220,6 +1220,17 @@ _bus_dmamap_sync(bus_dma_tag_t dmat, bus
                        dmat->bounce_zone->total_bounced++;
                }
 
+               if (op & BUS_DMASYNC_PREREAD) {
+                       bpage = STAILQ_FIRST(&map->bpages);
+                       while (bpage != NULL) {
+                               cpu_dcache_inv_range((vm_offset_t)bpage->vaddr,
+                                   bpage->datacount);
+                               l2cache_inv_range((vm_offset_t)bpage->vaddr,
+                                   (vm_offset_t)bpage->busaddr,
+                                   bpage->datacount);
+                               bpage = STAILQ_NEXT(bpage, links);
+                       }
+               }
                if (op & BUS_DMASYNC_POSTREAD) {
                        while (bpage != NULL) {
                                vm_offset_t startv;
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to