linux/drivers/net/ethernet/pensando/ionic
Brett Creeley 3c0bf13f5d ionic: Allow XDP program to be hot swapped
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: Brett Creeley <brett.creeley@amd.com>
Signed-off-by: Shannon Nelson <shannon.nelson@amd.com>
Link: https://patch.msgid.link/20240906232623.39651-8-brett.creeley@amd.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2024-09-09 19:18:15 -07:00
..
ionic.h
ionic_bus.h
ionic_bus_pci.c
ionic_debugfs.c
ionic_debugfs.h
ionic_dev.c
ionic_dev.h
ionic_devlink.c
ionic_devlink.h
ionic_ethtool.c
ionic_ethtool.h
ionic_fw.c
ionic_if.h
ionic_lif.c
ionic_lif.h
ionic_main.c
ionic_phc.c
ionic_regs.h
ionic_rx_filter.c
ionic_rx_filter.h
ionic_stats.c
ionic_stats.h
ionic_txrx.c
ionic_txrx.h
Makefile