Re: [PATCH v4 bpf 0/3] AF_XDP Socket Creation Fixes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
>




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux