]> Git Repo - qemu.git/blobdiff - include/qemu/seqlock.h
cpu-exec: Add "nochain" debug flag
[qemu.git] / include / qemu / seqlock.h
index 3ff118a1a1f5d2a2b3cc32c957b153452f995ae2..70b01fd60d803f7352da578d5957d6deb0711a32 100644 (file)
@@ -55,18 +55,18 @@ static inline void seqlock_write_unlock(QemuSeqLock *sl)
 static inline unsigned seqlock_read_begin(QemuSeqLock *sl)
 {
     /* Always fail if a write is in progress.  */
-    unsigned ret = sl->sequence & ~1;
+    unsigned ret = atomic_read(&sl->sequence);
 
     /* Read sequence before reading other fields.  */
     smp_rmb();
-    return ret;
+    return ret & ~1;
 }
 
-static int seqlock_read_retry(const QemuSeqLock *sl, unsigned start)
+static inline int seqlock_read_retry(const QemuSeqLock *sl, unsigned start)
 {
     /* Read other fields before reading final sequence.  */
     smp_rmb();
-    return unlikely(sl->sequence != start);
+    return unlikely(atomic_read(&sl->sequence) != start);
 }
 
 #endif
This page took 0.024205 seconds and 4 git commands to generate.