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]>
