Message ID | 20190822091306.20581-4-bjorn.topel@gmail.com |
---|---|
State | Changes Requested |
Delegated to: | BPF Maintainers |
Headers | show |
Series | xsk: various CPU barrier and {READ, WRITE}_ONCE fixes | expand |
On 22 Aug 2019, at 2:13, Björn Töpel wrote: > From: Björn Töpel <bjorn.topel@intel.com> > > The umem member of struct xdp_sock is read outside of the control > mutex, in the mmap implementation, and needs a WRITE_ONCE to avoid > potentional store-tearing. > > Fixes: 423f38329d26 ("xsk: add umem fill queue support and mmap") > Signed-off-by: Björn Töpel <bjorn.topel@intel.com> Acked-by: Jonathan Lemon <jonathan.lemon@gmail.com>
diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c index 31236e61069b..6dde1857ed52 100644 --- a/net/xdp/xsk.c +++ b/net/xdp/xsk.c @@ -718,7 +718,7 @@ static int xsk_setsockopt(struct socket *sock, int level, int optname, /* Make sure umem is ready before it can be seen by others */ smp_wmb(); - xs->umem = umem; + WRITE_ONCE(xs->umem, umem); mutex_unlock(&xs->mutex); return 0; }