On Wed, Aug 06, 2008 at 07:21:14AM -0500, Woodruff, Richard wrote: > Most of the weak memory attributes in newer ARMs are not exploited > today in tree. I'll guess this was more a correctness and capability > judgment from Russell. Not entirely true. We do as much as is safe to do - which is basically using 'device' mappings for devices and ioremap, and 'memory' mappings for the main memory, module and vmalloc mappings. What we don't do is mark DMA memory ask being normal uncached memory, thereby allowing that to be reordered with device accesses - we make it strongly ordered. The reason being that the kernel doesn't have barriers necessary to ensure that writes to DMA memory hit physical memory before the device access to enable DMA hits the DMA controller. Those kinds of bugs can be absolute hell to track down - think about a DMA controller accessing an uninitialised DMA descriptor, resulting in it scribbing over random bits of memory. The only real way to do this is to audit lots of drivers to ensure that: 1. DMA is not started until accesses to memory allocated by dma_alloc_coherent() have hit memory 2. accesses to dma_alloc_coherent() memory always read current data, even if the DMA controller has just updated the descriptor you're reading. Linux presently - and quite rightly - assumes that accesses to DMA coherent memory _are_ coherent with DMA. If not, the API would be a joke. -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html