Page MenuHomeFreeBSD

D3012.id6749.diff
No OneTemporary

D3012.id6749.diff

Index: sys/sys/bus_dma.h
===================================================================
--- sys/sys/bus_dma.h
+++ sys/sys/bus_dma.h
@@ -282,13 +282,17 @@
void bus_dmamem_free(bus_dma_tag_t dmat, void *vaddr, bus_dmamap_t map);
/*
- * Perform a synchronization operation on the given map.
+ * Perform a synchronization operation on the given map. If the map
+ * is NULL we have a fully IO-coherent system. Place a memory barrier
+ * then to ensure all data accesses are visible before going any further.
*/
void _bus_dmamap_sync(bus_dma_tag_t, bus_dmamap_t, bus_dmasync_op_t);
#define bus_dmamap_sync(dmat, dmamap, op) \
do { \
if ((dmamap) != NULL) \
_bus_dmamap_sync(dmat, dmamap, op); \
+ else \
+ mb(); \
} while (0)
/*

File Metadata

Mime Type
text/plain
Expires
Thu, Mar 26, 4:21 AM (3 h, 24 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30363003
Default Alt Text
D3012.id6749.diff (789 B)

Event Timeline