Add a memory barrier to DMA functions
commit7a0bac4da9c6a2e36d388412f3b4074b10429e8e
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 27 Jun 2012 04:50:47 +0000 (27 14:50 +1000)
committerAnthony Liguori <aliguori@us.ibm.com>
Wed, 27 Jun 2012 21:33:26 +0000 (27 16:33 -0500)
tree314c04cb25abc8f6144f2f9036f5efbd758c2864
parentedded454067bd9bda8a4a2a3ef54ae19474407da
Add a memory barrier to DMA functions

The emulated devices can run simultaneously with the guest, so
we need to be careful with ordering of load and stores done by
them to the guest system memory, which need to be observed in
the right order by the guest operating system.

This adds a barrier call to the basic DMA read/write ops which
is currently implemented as a smp_mb(), but could be later
improved for more fine grained control of barriers.

Additionally, a _relaxed() variant of the accessors is provided
to easily convert devices who would be performance sensitive
and negatively impacted by the change.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
dma-helpers.c
dma.h