linux/drivers/net/ethernet/intel/i40e
Maciej Fijalkowski e37084a260 i40e: remove redundant memory barrier when cleaning Tx descs
i40e has a feature which writes to memory location last descriptor
successfully sent. Memory barrier in i40e_clean_tx_irq() was used to
avoid forward-reading descriptor fields in case DD bit was not set.
Having mentioned feature in place implies that such situation will not
happen as we know in advance how many descriptors HW has dealt with.

Besides, this barrier placement was wrong. Idea is to have this
protection *after* reading DD bit from HW descriptor, not before.
Digging through git history showed me that indeed barrier was before DD
bit check, anyways the commit introducing i40e_get_head() should have
wiped it out altogether.

Also, there was one commit doing s/read_barrier_depends/smp_rmb when get
head feature was already in place, but it was only theoretical based on
ixgbe experiences, which is different in these terms as that driver has
to read DD bit from HW descriptor.

Fixes: 1943d8ba95 ("i40e/i40evf: enable hardware feature head write back")
Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2025-09-16 14:01:53 -07:00
..
Makefile
i40e.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-07-17 11:00:33 -07:00
i40e_adminq.c i40e: use libie adminq descriptors 2025-07-24 09:26:13 -07:00
i40e_adminq.h i40e: use libie adminq descriptors 2025-07-24 09:26:13 -07:00
i40e_adminq_cmd.h i40e: fix Jumbo Frame support after iPXE boot 2025-09-09 10:29:53 -07:00
i40e_alloc.h
i40e_client.c i40e: Fix potential invalid access when MAC list is empty 2025-09-02 11:08:52 -07:00
i40e_common.c i40e: fix Jumbo Frame support after iPXE boot 2025-09-09 10:29:53 -07:00
i40e_dcb.c i40e: use libie adminq descriptors 2025-07-24 09:26:13 -07:00
i40e_dcb.h i40e: Remove unused i40e_dcb_hw_get_num_tc 2025-01-06 13:31:49 -08:00
i40e_dcb_nl.c i40e: use libie_aq_str 2025-07-24 09:45:43 -07:00
i40e_ddp.c
i40e_debug.h
i40e_debugfs.c i40e: remove read access to debugfs files 2025-09-02 11:05:51 -07:00
i40e_devids.h
i40e_devlink.c
i40e_devlink.h
i40e_diag.c
i40e_diag.h
i40e_ethtool.c i40e: use libie_aq_str 2025-07-24 09:45:43 -07:00
i40e_hmc.c
i40e_hmc.h
i40e_io.h
i40e_lan_hmc.c
i40e_lan_hmc.h
i40e_main.c i40e: fix Jumbo Frame support after iPXE boot 2025-09-09 10:29:53 -07:00
i40e_nvm.c i40e: use libie_aq_str 2025-07-24 09:45:43 -07:00
i40e_prototype.h i40e: fix Jumbo Frame support after iPXE boot 2025-09-09 10:29:53 -07:00
i40e_ptp.c net: Fix typos 2025-07-25 10:29:07 -07:00
i40e_register.h
i40e_trace.h
i40e_txrx.c i40e: remove redundant memory barrier when cleaning Tx descs 2025-09-16 14:01:53 -07:00
i40e_txrx.h net: intel: move RSS packet classifier types to libie 2025-06-09 09:56:18 -07:00
i40e_txrx_common.h
i40e_type.h i40e: use libie adminq descriptors 2025-07-24 09:26:13 -07:00
i40e_virtchnl_pf.c Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue 2025-07-25 16:01:18 -07:00
i40e_virtchnl_pf.h i40e: add ability to reset VF for Tx and Rx MDD events 2025-01-07 18:16:02 -08:00
i40e_xsk.c i40e: use generic unrolled_count() macro 2025-02-10 17:54:43 -08:00
i40e_xsk.h i40e: use generic unrolled_count() macro 2025-02-10 17:54:43 -08:00