Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d307fb16 authored by Michael S. Tsirkin's avatar Michael S. Tsirkin
Browse files

Revert "virtio_ring: Update weak barriers to use dma_wmb/rmb"



This reverts commit 9e1a27ea.

While that commit optimizes !CONFIG_SMP, it mixes
up DMA and SMP concepts, making the code hard
to figure out.

A better way to optimize this is with the new __smp_XXX
barriers.

As a first step, go back to full rmb/wmb barriers
for !SMP.
We switch to __smp_XXX barriers in the next patch.

Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Alexander Duyck <alexander.duyck@gmail.com>
Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
parent 6a65d263
Loading
Loading
Loading
Loading
+19 −4
Original line number Diff line number Diff line
@@ -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;