mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-24 14:07:52 -04:00
Add support for receiving packets via AF_XDP zero-copy mechanism. Add a new flag to 'enum igc_ring_flags_t' to indicate the ring has AF_XDP zero-copy enabled so proper ring setup is carried out during ring configuration in igc_configure_rx_ring(). RX buffers can now be allocated via the shared pages mechanism (default behavior of the driver) or via xsk pool (when AF_XDP zero-copy is enabled) so a union is added to the 'struct igc_rx_buffer' to cover both cases. When AF_XDP zero-copy is enabled, rx buffers are allocated from the xsk pool using the new helper igc_alloc_rx_buffers_zc() which is the counterpart of igc_alloc_rx_buffers(). Likewise other Intel drivers that support AF_XDP zero-copy, in igc we have a dedicated path for cleaning up rx irqs when zero-copy is enabled. This avoids adding too many checks within igc_clean_rx_irq(), resulting in a more readable and efficient code since this function is called from the hot-path of the driver. Signed-off-by: Andre Guedes <andre.guedes@intel.com> Signed-off-by: Vedang Patel <vedang.patel@intel.com> Signed-off-by: Jithu Joseph <jithu.joseph@intel.com> Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com> Tested-by: Dvora Fuxbrumer <dvorax.fuxbrumer@linux.intel.com> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com> |
||
---|---|---|
.. | ||
igc.h | ||
igc_base.c | ||
igc_base.h | ||
igc_defines.h | ||
igc_diag.c | ||
igc_diag.h | ||
igc_dump.c | ||
igc_ethtool.c | ||
igc_hw.h | ||
igc_i225.c | ||
igc_i225.h | ||
igc_mac.c | ||
igc_mac.h | ||
igc_main.c | ||
igc_nvm.c | ||
igc_nvm.h | ||
igc_phy.c | ||
igc_phy.h | ||
igc_ptp.c | ||
igc_regs.h | ||
igc_tsn.c | ||
igc_tsn.h | ||
igc_xdp.c | ||
igc_xdp.h | ||
Makefile |