On 20/01/2026 9:52, Vivek Behera via Intel-wired-lan wrote:
This patch addresses the issue where the igc_xsk_wakeup function
was triggering an incorrect IRQ for tx-0 when the i226 is configured
with only 2 combined queues or in an environment with 2 active CPU cores.
This prevented XDP Zero-copy send functionality in such split IRQ
configurations.

The fix implements the correct logic for extracting q_vectors saved
during rx and tx ring allocation and utilizes flags provided by the
ndo_xsk_wakeup API to trigger the appropriate IRQ.

Fixes: fc9df2a0b520 ("igc: Enable RX via AF_XDP zero-copy")
Fixes: 15fd021bc427 ("igc: Add Tx hardware timestamp request for AF_XDP zero-copy 
packet")
Signed-off-by: Vivek Behera<[email protected]>
Reviewed-by: Jacob Keller<[email protected]>
Reviewed-by: Aleksandr loktinov<[email protected]>
Reviewed-by: Piotr Kwapulinski<[email protected]>
---
v1:https://lore.kernel.org/intel-wired-lan/as1pr10mb5392b7268416db8a1624fdb88f...@as1pr10mb5392.eurprd10.prod.outlook.com/
v2:https://lore.kernel.org/intel-wired-lan/as1pr10mb539280b1427da0abe9d65e628f...@as1pr10mb5392.eurprd10.prod.outlook.com/
v3:https://lore.kernel.org/intel-wired-lan/ia3pr11mb8986e4acb7f264cf2dd1d750e5...@ia3pr11mb8986.namprd11.prod.outlook.com/
v4:https://lore.kernel.org/intel-wired-lan/as1pr10mb53926cb955fbd4f9f4a018818f...@as1pr10mb5392.eurprd10.prod.outlook.com/
v5:https://lore.kernel.org/intel-wired-lan/as1pr10mb5392fca415a38b9dd7bb5f218f...@as1pr10mb5392.eurprd10.prod.outlook.com/
v6:https://lore.kernel.org/intel-wired-lan/[email protected]/
v7:https://lore.kernel.org/intel-wired-lan/[email protected]/
v8:https://lore.kernel.org/intel-wired-lan/[email protected]/
v9:https://lore.kernel.org/intel-wired-lan/[email protected]/
v10:https://lore.kernel.org/intel-wired-lan/[email protected]/
changelog:
v1
- Inital description of the Bug and steps to reproduce with RTC Testbench
- Test results after applying the patch
v1 -> v2
- Handling of RX and TX Wakeup in igc_xsk_wakeup for a split IRQ configuration
- Removal of igc_trigger_rxtxq_interrupt (now redundant)
- Added flag to igc_xsk_wakeup function call in igc_ptp_free_tx_buffer
v2 -> v3
- Added 'Fixes:' tags for the relevant commits.
- Added reviewer
v3 -> v4
- Added reviewer
v4 -> v5
- Updated comment style from multi-star to standard linux convention
v5 -> v6
- Resolve formatting issues highlighted by reviewers
- Try to include version histroy as defined in netdev guidelines
- Included review suggestions from Przemyslaw
- Added reviewers
v6 -> v7
- Included review suggestions from Przemyslaw missed in v6
v7 -> v8
- Modified sequence to complete all error checks for rx and tx
   before updating napi states and triggering irq
v8 -> v9
- Included review feedback and suggestions from Tony and Siang
v9 -> v10
- Introduced a simplified logic for sequential check for RX and TX
v10 -> v11
- Improved explanation of implemented logic in comment block
---
  drivers/net/ethernet/intel/igc/igc_main.c | 34 ++++++++++++++++-------
  drivers/net/ethernet/intel/igc/igc_ptp.c  |  3 +-
  2 files changed, 26 insertions(+), 11 deletions(-)

Tested-by: Avigail Dahan <[email protected]>

Reply via email to