This series adds native XDP support using page_pool. XDP zero copy support is not included in this patch series. Patch 1/3: Replaces skb with page pool for Rx buffer allocation Patch 2/3: Adds prueth_swdata struct for SWDATA for all swdata cases Patch 3/3: Introduces native mode XDP support v2: https://lore.kernel.org/all/20250210103352.541052-1-m-malladi@xxxxxx/ Changes since v2 (v3-v2): 0/3: - Update cover letter subject line to add details of the driver as suggested by Jesper Dangaard Brouer <hawk@xxxxxxxxxx> 1/3: - few cosmetic changes for all the patches 2/3: - Fix leaking tx descriptor in emac_tx_complete_packets() - Free rx descriptor if swdata type is not page in emac_rx_packet() - Revert back the size of PRUETH_NAV_SW_DATA_SIZE - Use build time check for prueth_swdata size - re-write prueth_swdata to have enum type as first member in the struct and prueth_data union embedded in the struct 3/3: - Use page_pool contained in the page instead of using passing page_pool (rx_chn) as part of swdata - dev_sw_netstats_tx_add() instead of incrementing the stats directly - Add missing ndev->stats.tx_dropped++ wherever applicable - Move k3_cppi_desc_pool_alloc() before the DMA mapping for easier cleanup on failure - Replace rxp->napi_id with emac->napi_rx.napi_id in prueth_create_xdp_rxqs() All the above changes have been suggested by Roger Quadros <rogerq@xxxxxxxxxx> Roger Quadros (3): net: ti: icssg-prueth: Use page_pool API for RX buffer allocation net: ti: icssg-prueth: introduce and use prueth_swdata struct for SWDATA net: ti: icssg-prueth: Add XDP support drivers/net/ethernet/ti/Kconfig | 1 + drivers/net/ethernet/ti/icssg/icssg_common.c | 421 ++++++++++++++---- drivers/net/ethernet/ti/icssg/icssg_prueth.c | 128 +++++- drivers/net/ethernet/ti/icssg/icssg_prueth.h | 47 +- .../net/ethernet/ti/icssg/icssg_prueth_sr1.c | 23 +- 5 files changed, 529 insertions(+), 91 deletions(-) base-commit: e13b6da7045f997e1a5a5efd61d40e63c4fc20e8 -- 2.43.0