diff options
Diffstat (limited to 'Documentation/memory-barriers.txt')
| -rw-r--r-- | Documentation/memory-barriers.txt | 17 | 
1 files changed, 9 insertions, 8 deletions
diff --git a/Documentation/memory-barriers.txt b/Documentation/memory-barriers.txt index 33b8bc9573f8..a02d6bbfc9d0 100644 --- a/Documentation/memory-barriers.txt +++ b/Documentation/memory-barriers.txt @@ -1920,9 +1920,6 @@ There are some more advanced barrier functions:  		/* assign ownership */  		desc->status = DEVICE_OWN; -		/* force memory to sync before notifying device via MMIO */ -		wmb(); -  		/* notify device of new descriptors */  		writel(DESC_NOTIFY, doorbell);  	} @@ -1930,11 +1927,15 @@ There are some more advanced barrier functions:       The dma_rmb() allows us guarantee the device has released ownership       before we read the data from the descriptor, and the dma_wmb() allows       us to guarantee the data is written to the descriptor before the device -     can see it now has ownership.  The wmb() is needed to guarantee that the -     cache coherent memory writes have completed before attempting a write to -     the cache incoherent MMIO region. - -     See Documentation/DMA-API.txt for more information on consistent memory. +     can see it now has ownership.  Note that, when using writel(), a prior +     wmb() is not needed to guarantee that the cache coherent memory writes +     have completed before writing to the MMIO region.  The cheaper +     writel_relaxed() does not provide this guarantee and must not be used +     here. + +     See the subsection "Kernel I/O barrier effects" for more information on +     relaxed I/O accessors and the Documentation/DMA-API.txt file for more +     information on consistent memory.  MMIO WRITE BARRIER  |