• Brett Creeley's avatar
    ionic: Allow XDP program to be hot swapped · 3c0bf13f
    Brett Creeley authored
    Using examples of other driver(s), add the ability to hot-swap an XDP
    program without having to reconfigure the queues. To prevent the
    q->xdp_prog to be read/written more than once use READ_ONCE() and
    WRITE_ONCE() on the q->xdp_prog.
    
    The q->xdp_prog was being checked in multiple different for loops in the
    hot path. The change to allow xdp_prog hot swapping created the
    possibility for many READ_ONCE(q->xdp_prog) calls during a single napi
    callback. Refactor the Rx napi handling to allow a previous
    READ_ONCE(q->xdp_prog) (or NULL for hwstamp_rxq) to be passed into the
    relevant functions.
    
    Also, move other Rx related hotpath handling into the newly created
    ionic_rx_cq_service() function to reduce the scope of the xdp_prog
    local variable and put all Rx handling in one function similar to Tx.
    Signed-off-by: default avatarBrett Creeley <brett.creeley@amd.com>
    Signed-off-by: default avatarShannon Nelson <shannon.nelson@amd.com>
    Link: https://patch.msgid.link/20240906232623.39651-8-brett.creeley@amd.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    3c0bf13f
ionic_txrx.h 773 Bytes