aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/virtio_ring.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/virtio_ring.h')
-rw-r--r--include/linux/virtio_ring.h23
1 files changed, 4 insertions, 19 deletions
diff --git a/include/linux/virtio_ring.h b/include/linux/virtio_ring.h
index 67e06fe18c03..8e50888a6d59 100644
--- a/include/linux/virtio_ring.h
+++ b/include/linux/virtio_ring.h
@@ -21,19 +21,20 @@
21 * actually quite cheap. 21 * actually quite cheap.
22 */ 22 */
23 23
24#ifdef CONFIG_SMP
25static inline void virtio_mb(bool weak_barriers) 24static inline void virtio_mb(bool weak_barriers)
26{ 25{
26#ifdef CONFIG_SMP
27 if (weak_barriers) 27 if (weak_barriers)
28 smp_mb(); 28 smp_mb();
29 else 29 else
30#endif
30 mb(); 31 mb();
31} 32}
32 33
33static inline void virtio_rmb(bool weak_barriers) 34static inline void virtio_rmb(bool weak_barriers)
34{ 35{
35 if (weak_barriers) 36 if (weak_barriers)
36 smp_rmb(); 37 dma_rmb();
37 else 38 else
38 rmb(); 39 rmb();
39} 40}
@@ -41,26 +42,10 @@ static inline void virtio_rmb(bool weak_barriers)
41static inline void virtio_wmb(bool weak_barriers) 42static inline void virtio_wmb(bool weak_barriers)
42{ 43{
43 if (weak_barriers) 44 if (weak_barriers)
44 smp_wmb(); 45 dma_wmb();
45 else 46 else
46 wmb(); 47 wmb();
47} 48}
48#else
49static inline void virtio_mb(bool weak_barriers)
50{
51 mb();
52}
53
54static inline void virtio_rmb(bool weak_barriers)
55{
56 rmb();
57}
58
59static inline void virtio_wmb(bool weak_barriers)
60{
61 wmb();
62}
63#endif
64 49
65struct virtio_device; 50struct virtio_device;
66struct virtqueue; 51struct virtqueue;