Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 3160499aacb81f6735941eb4c372d87a > files > 603

kvm-83-164.el5_5.30.src.rpm

From 076c77cf401d16008b5a33abcde0aab0e7c28bbc Mon Sep 17 00:00:00 2001
From: Michael S. Tsirkin <mst@redhat.com>
Date: Wed, 27 Jan 2010 12:19:53 -0200
Subject: [PATCH 3/5] qemu/virtio: atomic access for index values

RH-Author: Michael S. Tsirkin <mst@redhat.com>
Message-id: <20100127121953.GC7223@redhat.com>
Patchwork-id: 6703
O-Subject: [PATCHv3-repost 2/2] qemu/virtio: atomic access for index values
Bugzilla: 525323
RH-Acked-by: Markus Armbruster <armbru@redhat.com>
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
RH-Acked-by: Juan Quintela <quintela@redhat.com>

virtio index values must be read/written atomically.
Use the new _atomic routines for them.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 qemu/hw/virtio.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 qemu/hw/virtio.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/qemu/hw/virtio.c b/qemu/hw/virtio.c
index 2fdfc59..618cef7 100644
--- a/qemu/hw/virtio.c
+++ b/qemu/hw/virtio.c
@@ -198,7 +198,7 @@ static inline uint16_t vring_avail_idx(VirtQueue *vq)
 {
     target_phys_addr_t pa;
     pa = vq->vring.avail + offsetof(VRingAvail, idx);
-    return lduw_phys(pa);
+    return lduw_phys_atomic(pa);
 }
 
 static inline uint16_t vring_avail_ring(VirtQueue *vq, int i)
@@ -233,7 +233,7 @@ static inline void vring_used_idx_increment(VirtQueue *vq, uint16_t val)
 {
     target_phys_addr_t pa;
     pa = vq->vring.used + offsetof(VRingUsed, idx);
-    stw_phys(pa, vring_used_idx(vq) + val);
+    stw_phys_atomic(pa, vring_used_idx(vq) + val);
 }
 
 static inline void vring_used_flags_set_bit(VirtQueue *vq, int mask)
-- 
1.6.3.rc4.29.g8146