Commit 94a99763 authored by Björn Töpel's avatar Björn Töpel Committed by Daniel Borkmann

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: default avatarJonathan Lemon <jonathan.lemon@gmail.com>
Fixes: 37b07693 ("xsk: add missing write- and data-dependency barrier")
Signed-off-by: default avatarBjörn Töpel <bjorn.topel@intel.com>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
parent 310f4204
...@@ -434,7 +434,7 @@ static int xsk_init_queue(u32 entries, struct xsk_queue **queue, ...@@ -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 */ /* Make sure queue is ready before it can be seen by others */
smp_wmb(); smp_wmb();
*queue = q; WRITE_ONCE(*queue, q);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment