diff options
author | nwhitehorn <nwhitehorn@FreeBSD.org> | 2012-01-11 16:53:51 +0000 |
---|---|---|
committer | nwhitehorn <nwhitehorn@FreeBSD.org> | 2012-01-11 16:53:51 +0000 |
commit | fbc68e09a0f5a13ae5dfa86c68720004dbbf46a0 (patch) | |
tree | 591e14b4ac97f8edcb335b1327fe2ad2906093c3 | |
parent | 5f5cbaa5f6d44d5f62a291801325f3d3e6896b06 (diff) | |
download | FreeBSD-src-fbc68e09a0f5a13ae5dfa86c68720004dbbf46a0.zip FreeBSD-src-fbc68e09a0f5a13ae5dfa86c68720004dbbf46a0.tar.gz |
Add a memory barrier to bus_dmamap_sync(), as should have always been
present. We need a sync instead of eieio, as eieio does not enforce storage
ordering between main and device memory.
-rw-r--r-- | sys/powerpc/powerpc/busdma_machdep.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/powerpc/powerpc/busdma_machdep.c b/sys/powerpc/powerpc/busdma_machdep.c index 9ebc097..7f9f8ec 100644 --- a/sys/powerpc/powerpc/busdma_machdep.c +++ b/sys/powerpc/powerpc/busdma_machdep.c @@ -51,6 +51,7 @@ __FBSDID("$FreeBSD$"); #include <machine/atomic.h> #include <machine/bus.h> +#include <machine/cpufunc.h> #include <machine/md_var.h> #include "iommu_if.h" @@ -979,6 +980,8 @@ _bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dmasync_op_t op) dmat->bounce_zone->total_bounced++; } } + + powerpc_sync(); } static void |