svn commit: r290219 - head/sys/mips/mips
Adrian Chadd
adrian at FreeBSD.org
Sat Oct 31 00:29:27 UTC 2015
Author: adrian
Date: Sat Oct 31 00:29:26 2015
New Revision: 290219
URL: https://svnweb.freebsd.org/changeset/base/290219
Log:
mips: do mips_sync() on sync operations to uncachable memory.
mips24k/mips74k document that we need an explicit SYNC so to order
things correctly, even with access to uncachable memory.
We were doing calls to SYNC in the cache ops (inv, wbinv) but we
weren't doing it for uncachable memory.
Modified:
head/sys/mips/mips/busdma_machdep.c
Modified: head/sys/mips/mips/busdma_machdep.c
==============================================================================
--- head/sys/mips/mips/busdma_machdep.c Sat Oct 31 00:04:44 2015 (r290218)
+++ head/sys/mips/mips/busdma_machdep.c Sat Oct 31 00:29:26 2015 (r290219)
@@ -1220,11 +1220,12 @@ _bus_dmamap_sync(bus_dma_tag_t dmat, bus
if (STAILQ_FIRST(&map->bpages))
_bus_dmamap_sync_bp(dmat, map, op);
- if (dmat->flags & BUS_DMA_COHERENT)
- return;
-
- if (map->flags & DMAMAP_UNCACHEABLE)
+ if ((dmat->flags & BUS_DMA_COHERENT) ||
+ (map->flags & DMAMAP_UNCACHEABLE)) {
+ if (op & BUS_DMASYNC_PREWRITE)
+ mips_sync();
return;
+ }
aligned = (map->flags & DMAMAP_CACHE_ALIGNED) ? 1 : 0;
More information about the svn-src-all
mailing list