Merge tag 'block-5.9-2020-08-14' of git://git.kernel.dk/linux-block
[linux/fpc-iii.git] / tools / memory-model / litmus-tests / S+fencewmbonceonce+poacquireonce.litmus
blob18479823cd6ccd1315b6723a215bf8df7f38daf2
1 C S+fencewmbonceonce+poacquireonce
3 (*
4  * Result: Never
5  *
6  * Can a smp_wmb(), instead of a release, and an acquire order a prior
7  * store against a subsequent store?
8  *)
12 P0(int *x, int *y)
14         WRITE_ONCE(*x, 2);
15         smp_wmb();
16         WRITE_ONCE(*y, 1);
19 P1(int *x, int *y)
21         int r0;
23         r0 = smp_load_acquire(y);
24         WRITE_ONCE(*x, 1);
27 exists (x=2 /\ 1:r0=1)