linux/drivers/net/ethernet/intel/igc
Stanislav Fomichev a6e4b9a6de xsk: honor XDP_TX_METADATA in zero-copy path
The zero-copy path reads TX metadata whenever the UMEM has metadata space,
even if the descriptor does not set XDP_TX_METADATA. Pass descriptor
options through the metadata helpers and ignore metadata unless the option
is set.

This does not fix the existing per-WQE metadata handling for mlx5 MPWQEs.
Only the descriptor that starts a session passes through
xsk_tx_metadata_request() and configures offload state shared by the batch.
Metadata on descriptors joining an open session is therefore not validated
and does not configure its requested offloads. In addition, a non-NULL
metadata pointer from such a descriptor is treated as a timestamp
completion request even when XDP_TXMD_FLAGS_TIMESTAMP is not set, so its
metadata union can be overwritten with an unrequested timestamp. Fixing
mixed metadata states within one MPWQE requires a separate change.

Fixes: 48eb03dd26 ("xsk: Add TX timestamp and TX checksum offload support")
Reviewed-by: Alexander Lobakin <aleksander.lobakin@intel.com>
Signed-off-by: Stanislav Fomichev <sdf@fomichev.me>
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Link: https://patch.msgid.link/20260819160535.1472459-3-sdf@fomichev.me
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-08-24 11:12:00 -07:00
..
igc_base.c igc: add support for forcing link speed without autonegotiation 2026-07-01 13:34:52 -07:00
igc_base.h igc: move TXDCTL and RXDCTL related macros 2025-06-11 08:52:14 -07:00
igc_defines.h igc: add support for forcing link speed without autonegotiation 2026-07-01 13:34:52 -07:00
igc_diag.c igc: fix typos in comments 2026-06-13 16:44:06 -07:00
igc_diag.h
igc_dump.c
igc_ethtool.c igc: add support for forcing link speed without autonegotiation 2026-07-01 13:34:52 -07:00
igc_hw.h igc: add support for forcing link speed without autonegotiation 2026-07-01 13:34:52 -07:00
igc_i225.c igc: drop unnecessary constant casts to u16 2025-09-03 10:07:27 -07:00
igc_i225.h
igc_leds.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
igc_mac.c igc: add support for forcing link speed without autonegotiation 2026-07-01 13:34:52 -07:00
igc_mac.h
igc_main.c xsk: honor XDP_TX_METADATA in zero-copy path 2026-08-24 11:12:00 -07:00
igc_nvm.c igc: drop unnecessary constant casts to u16 2025-09-03 10:07:27 -07:00
igc_nvm.h igc: Remove unused igc_acquire/release_nvm 2025-01-06 13:32:44 -08:00
igc_phy.c net: intel: remove conditional return with no effect 2026-07-30 13:04:03 +02:00
igc_phy.h igc: add support for forcing link speed without autonegotiation 2026-07-01 13:34:52 -07:00
igc_ptp.c igc: Use provided clock ID for history snapshot 2026-06-04 11:04:17 +02:00
igc_regs.h igc: add support to get frame preemption statistics via ethtool 2025-04-18 09:17:14 -07:00
igc_tsn.c net: add READ_ONCE()/WRITE_ONCE() annotations for dev->num_tc 2026-08-17 10:27:48 -07:00
igc_tsn.h igc: add preemptible queue support in mqprio 2025-06-11 10:06:24 -07:00
igc_xdp.c igc: Fix XSK queue NAPI ID mapping 2025-04-02 08:51:41 -07:00
igc_xdp.h
igc.h igc: prepare for RSS key get/set support 2026-07-01 13:34:29 -07:00
Makefile net: intel: Use *-y instead of *-objs in Makefile 2024-06-10 19:52:44 -07:00