Thread (85 messages) flat view 85 messages, 12 authors, 2016-01-11

[PATCH v2 32/32] virtio_ring: use virt_store_mb

From: mst@redhat.com (Michael S. Tsirkin)
Date: 2016-01-03 09:01:21
Also in: linux-arch, linux-mips, linux-s390, linux-sh, linux-um, linuxppc-dev, lkml, sparclinux

On Fri, Jan 01, 2016 at 08:23:46PM +0300, Sergei Shtylyov wrote:
Hello.

On 12/31/2015 10:09 PM, Michael S. Tsirkin wrote:
quoted
We need a full barrier after writing out event index, using
virt_store_mb there seems better than open-coding.  As usual, we need a
wrapper to account for strong barriers.

It's tempting to use this in vhost as well, for that, we'll
need a variant of smp_store_mb that works on __user pointers.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 include/linux/virtio_ring.h  | 12 ++++++++++++
 drivers/virtio/virtio_ring.c | 15 +++++++++------
 2 files changed, 21 insertions(+), 6 deletions(-)
diff --git a/include/linux/virtio_ring.h b/include/linux/virtio_ring.h
index f3fa55b..3a74d91 100644
--- a/include/linux/virtio_ring.h
+++ b/include/linux/virtio_ring.h
@@ -45,6 +45,18 @@ static inline void virtio_wmb(bool weak_barriers)
 		wmb();
 }

+static inline void virtio_store_mb(bool weak_barriers,
+				   __virtio16 *p, __virtio16 v)
+{
+	if (weak_barriers)
+		virt_store_mb(*p, v);
+	else
+	{
   The kernel coding style dictates:

	if (weak_barriers) {
		virt_store_mb(*p, v);
	} else {
quoted
+		WRITE_ONCE(*p, v);
+		mb();
+	}
+}
+
[...]

MBR, Sergei
Will fix, thanks!
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help