On Wed, 31 Mar 2021 at 08:43, Ciara Loftus <ciara.loftus@xxxxxxxxx> wrote: > > This series fixes some issues around socket creation for AF_XDP. > > Patch 1 fixes a potential NULL pointer dereference in > xsk_socket__create_shared. > > Patch 2 ensures that the umem passed to xsk_socket__create(_shared) > remains unchanged in event of failure. > > Patch 3 makes it possible for xsk_socket__create(_shared) to > succeed even if the rx and tx XDP rings have already been set up by > introducing a new fields to struct xsk_umem which represent the ring > setup status for the xsk which shares the fd with the umem. > > v3->v4: > * Reduced nesting in xsk_put_ctx as suggested by Alexei. > * Use bools instead of a u8 and flags to represent the > ring setup status as suggested by Björn. > Thanks, Ciara! LGTM! Acked-by: Björn Töpel <bjorn@xxxxxxxxxx> > v2->v3: > * Instead of ignoring the return values of the setsockopt calls, introduce > a new flag to determine whether or not to call them based on the ring > setup status as suggested by Alexei. > > v1->v2: > * Simplified restoring the _save pointers as suggested by Magnus. > * Fixed the condition which determines whether to unmap umem rings > when socket create fails. > > This series applies on commit 861de02e5f3f2a104eecc5af1d248cb7bf8c5f75 > > Ciara Loftus (3): > libbpf: ensure umem pointer is non-NULL before dereferencing > libbpf: restore umem state after socket create failure > libbpf: only create rx and tx XDP rings when necessary > > tools/lib/bpf/xsk.c | 57 +++++++++++++++++++++++++++++---------------- > 1 file changed, 37 insertions(+), 20 deletions(-) > > -- > 2.17.1 >