From cd91ba788bddf420fbe2d85d75016c2f22cf8580 Mon Sep 17 00:00:00 2001 From: Zoltan HERPAI Date: Thu, 21 Jul 2016 16:13:09 +0200 Subject: [PATCH] generic/4.4: backport virtio_ring patch for reverting weak barriers patch Signed-off-by: Zoltan HERPAI --- ...tio-revert_dma_wmb_rmb_weak_barriers.patch | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 target/linux/generic/patches-4.4/150-virtio-revert_dma_wmb_rmb_weak_barriers.patch 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 index 0000000000..0abbefa44d --- /dev/null +++ b/target/linux/generic/patches-4.4/150-virtio-revert_dma_wmb_rmb_weak_barriers.patch @@ -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; -- 2.35.1