generic/4.4: backport virtio_ring patch for reverting weak barriers patch
authorZoltan HERPAI <wigyori@uid0.hu>
Thu, 21 Jul 2016 14:13:09 +0000 (16:13 +0200)
committerZoltan HERPAI <wigyori@uid0.hu>
Thu, 21 Jul 2016 14:13:09 +0000 (16:13 +0200)
Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
target/linux/generic/patches-4.4/150-virtio-revert_dma_wmb_rmb_weak_barriers.patch [new file with mode: 0644]

diff --git a/target/linux/generic/patches-4.4/150-virtio-revert_dma_wmb_rmb_weak_barriers.patch b/target/linux/generic/patches-4.4/150-virtio-revert_dma_wmb_rmb_weak_barriers.patch
new file mode 100644 (file)
index 0000000..0abbefa
--- /dev/null
@@ -0,0 +1,55 @@
+diff --git a/include/linux/virtio_ring.h b/include/linux/virtio_ring.h
+index 8e50888..67e06fe 100644
+--- a/include/linux/virtio_ring.h
++++ b/include/linux/virtio_ring.h
+@@ -21,20 +21,19 @@
+  * actually quite cheap.
+  */
++#ifdef CONFIG_SMP
+ static inline void virtio_mb(bool weak_barriers)
+ {
+-#ifdef CONFIG_SMP
+       if (weak_barriers)
+               smp_mb();
+       else
+-#endif
+               mb();
+ }
+ static inline void virtio_rmb(bool weak_barriers)
+ {
+       if (weak_barriers)
+-              dma_rmb();
++              smp_rmb();
+       else
+               rmb();
+ }
+@@ -42,10 +41,26 @@ static inline void virtio_rmb(bool weak_barriers)
+ static inline void virtio_wmb(bool weak_barriers)
+ {
+       if (weak_barriers)
+-              dma_wmb();
++              smp_wmb();
+       else
+               wmb();
+ }
++#else
++static inline void virtio_mb(bool weak_barriers)
++{
++      mb();
++}
++
++static inline void virtio_rmb(bool weak_barriers)
++{
++      rmb();
++}
++
++static inline void virtio_wmb(bool weak_barriers)
++{
++      wmb();
++}
++#endif
+ struct virtio_device;
+ struct virtqueue;