diff options
author | Björn Töpel <bjorn.topel@intel.com> | 2019-09-04 14:49:10 +0300 |
---|---|---|
committer | Daniel Borkmann <daniel@iogearbox.net> | 2019-09-05 15:11:52 +0300 |
commit | 94a997637c5b562fa0ca44fca1d2cd02ec08236f (patch) | |
tree | 39565fb606c3a0c40dc736a84d3652938886cfdd /net | |
parent | 310f4204eeb6053e35c277a23d9c179e8e32322e (diff) | |
download | linux-94a997637c5b562fa0ca44fca1d2cd02ec08236f.tar.xz |
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 <jonathan.lemon@gmail.com>
Fixes: 37b076933a8e ("xsk: add missing write- and data-dependency barrier")
Signed-off-by: Björn Töpel <bjorn.topel@intel.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/xdp/xsk.c | 2 |
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; } |