tools/memory-model: Fix data race detection for unordered store and load
[linux-2.6-block.git] / tools / memory-model / linux-kernel.cat
index ea2ff4b940749b31de05c544c95af3a7d847444f..2a9b4fe4a84ebdc56e553056991d60f68e8df48f 100644 (file)
@@ -197,7 +197,7 @@ empty (wr-incoh | rw-incoh | ww-incoh) as plain-coherence
 (* Actual races *)
 let ww-nonrace = ww-vis & ((Marked * W) | rw-xbstar) & ((W * Marked) | wr-vis)
 let ww-race = (pre-race & co) \ ww-nonrace
-let wr-race = (pre-race & (co? ; rf)) \ wr-vis
+let wr-race = (pre-race & (co? ; rf)) \ wr-vis \ rw-xbstar^-1
 let rw-race = (pre-race & fr) \ rw-xbstar
 
 flag ~empty (ww-race | wr-race | rw-race) as data-race