aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Töpel <[email protected]>2019-09-04 13:49:10 +0200
committerDaniel Borkmann <[email protected]>2019-09-05 14:11:52 +0200
commit94a997637c5b562fa0ca44fca1d2cd02ec08236f (patch)
tree39565fb606c3a0c40dc736a84d3652938886cfdd
parent310f4204eeb6053e35c277a23d9c179e8e32322e (diff)
xsk: avoid store-tearing when assigning queues
Use WRITE_ONCE when doing the store of tx, rx, fq, and cq, to avoid potential store-tearing. These members are read outside of the control mutex in the mmap implementation. Acked-by: Jonathan Lemon <[email protected]> Fixes: 37b076933a8e ("xsk: add missing write- and data-dependency barrier") Signed-off-by: Björn Töpel <[email protected]> Signed-off-by: Daniel Borkmann <[email protected]>
-rw-r--r--net/xdp/xsk.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
index 187fd157fcff..271d8d3fb11e 100644
--- a/net/xdp/xsk.c
+++ b/net/xdp/xsk.c
@@ -434,7 +434,7 @@ static int xsk_init_queue(u32 entries, struct xsk_queue **queue,
/* Make sure queue is ready before it can be seen by others */
smp_wmb();
- *queue = q;
+ WRITE_ONCE(*queue, q);
return 0;
}