mirror_ubuntu-kernels/drivers/net/ethernet/broadcom/bnxt
Michael Chan 828affc27e bnxt_en: Add missing DMA memory barriers
Each completion ring entry has a valid bit to indicate that the entry
contains a valid completion event.  The driver's main poll loop
__bnxt_poll_work() has the proper dma_rmb() to make sure the valid
bit of the next entry has been checked before proceeding further.
But when we call bnxt_rx_pkt() to process the RX event, the RX
completion event consists of two completion entries and only the
first entry has been checked to be valid.  We need the same barrier
after checking the next completion entry.  Add missing dma_rmb()
barriers in bnxt_rx_pkt() and other similar locations.

Fixes: 67a95e2022 ("bnxt_en: Need memory barrier when processing the completion ring.")
Reported-by: Lance Richardson <lance.richardson@broadcom.com>
Reviewed-by: Andy Gospodarek <gospo@broadcom.com>
Reviewed-by: Lance Richardson <lance.richardson@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-08-16 11:31:41 +01:00
..
bnxt_coredump.h
bnxt_dcb.c bnxt_en: reject ETS settings that will starve a TC 2021-07-19 08:25:43 -07:00
bnxt_dcb.h
bnxt_debugfs.c bnxt: no need to check return value of debugfs_create functions 2019-08-10 15:25:47 -07:00
bnxt_debugfs.h
bnxt_devlink.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-02-16 17:51:13 -08:00
bnxt_devlink.h bnxt_en: Refactor bnxt_dl_info_get(). 2020-10-12 14:27:03 -07:00
bnxt_dim.c linux/dim: Move implementation to .c files 2019-06-25 13:46:39 -07:00
bnxt_ethtool.c bnxt_en: Add PTP clock APIs, ioctls, and ethtool methods 2021-06-28 13:41:05 -07:00
bnxt_ethtool.h devlink: move request_firmware out of driver 2020-11-19 21:40:57 -08:00
bnxt_fw_hdr.h
bnxt_hsi.h bnxt_en: Update firmware interface to 1.10.2.52 2021-08-08 13:05:51 +01:00
bnxt_nvm_defs.h
bnxt_ptp.c bnxt_en: Update firmware call to retrieve TX PTP timestamp 2021-08-08 13:05:51 +01:00
bnxt_ptp.h bnxt_en: Use register window 6 instead of 5 to read the PHC 2021-08-08 13:05:51 +01:00
bnxt_sriov.c bnxt_en: Update firmware interface to 1.10.2.47 2021-06-28 13:41:05 -07:00
bnxt_sriov.h bnxt_en: allow promiscuous mode for trusted VFs 2021-04-25 18:37:38 -07:00
bnxt_tc.c net: bnxt: don't complain if TC flower can't be supported 2020-07-17 18:26:20 -07:00
bnxt_tc.h bnxt_en: Fix array overrun in bnxt_fill_l2_rewrite_fields(). 2019-11-13 14:28:30 -08:00
bnxt_ulp.c bnxt_en: Refresh RoCE capabilities in bnxt_ulp_probe() 2021-07-19 08:25:43 -07:00
bnxt_ulp.h bnxt_en: Add doorbell information to bnxt_en_dev struct. 2020-05-04 10:44:11 -07:00
bnxt_vfr.c bnxt_en: Free and allocate VF-Reps during error recovery. 2021-04-12 13:20:38 -07:00
bnxt_vfr.h bnxt_en: Free and allocate VF-Reps during error recovery. 2021-04-12 13:20:38 -07:00
bnxt_xdp.c bnxt: Remove rcu_read_lock() around XDP program invocation 2021-06-24 19:43:49 +02:00
bnxt_xdp.h bnxt_en: optimized XDP_REDIRECT support 2019-07-08 15:15:24 -07:00
bnxt.c bnxt_en: Add missing DMA memory barriers 2021-08-16 11:31:41 +01:00
bnxt.h bnxt: make sure xmit_more + errors does not miss doorbells 2021-08-13 10:26:17 -07:00
Makefile bnxt_en: Add PTP clock APIs, ioctls, and ethtool methods 2021-06-28 13:41:05 -07:00