• Jesper Dangaard Brouer's avatar
    xdp/qede: setup xdp_rxq_info and intro xdp_rxq_info_is_reg · c0124f32
    Jesper Dangaard Brouer authored
    The driver code qede_free_fp_array() depend on kfree() can be called
    with a NULL pointer. This stems from the qede_alloc_fp_array()
    function which either (kz)alloc memory for fp->txq or fp->rxq.
    This also simplifies error handling code in case of memory allocation
    failures, but xdp_rxq_info_unreg need to know the difference.
    
    Introduce xdp_rxq_info_is_reg() to handle if a memory allocation fails
    and detect this is the failure path by seeing that xdp_rxq_info was
    not registred yet, which first happens after successful alloaction in
    qede_init_fp().
    
    Driver hook points for xdp_rxq_info:
     * reg  : qede_init_fp
     * unreg: qede_free_fp_array
    
    Tested on actual hardware with samples/bpf program.
    
    V2: Driver have no proper error path for failed XDP RX-queue info reg, as
    qede_init_fp() is a void function.
    
    Cc: everest-linux-l2@cavium.com
    Cc: Ariel Elior <Ariel.Elior@cavium.com>
    Signed-off-by: default avatarJesper Dangaard Brouer <brouer@redhat.com>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    c0124f32
xdp.c 1.76 KB