linux/drivers/net/ethernet/broadcom
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
..
bnx2x bnx2x: fix an error code in bnx2x_nic_load() 2021-08-05 13:32:10 +01:00
bnxt bnxt_en: Add missing DMA memory barriers 2021-08-16 11:31:41 +01:00
genet net: bcmgenet: Ensure all TX/RX queues DMAs are disabled 2021-07-08 19:35:59 -07:00
b44.c net: broadcom: remove leading spaces before tabs 2021-05-19 12:17:30 -07:00
b44.h
bcm63xx_enet.c bcm63xx_enet: fix sporadic kernel panic 2021-02-23 12:15:04 -08:00
bcm63xx_enet.h bcm63xx_enet: convert to build_skb 2021-01-07 12:39:53 -08:00
bcm4908_enet.c net: broadcom: bcm4908_enet: reset DMA rings sw indexes properly 2021-06-22 10:34:13 -07:00
bcm4908_enet.h net: broadcom: rename BCM4908 driver & update DT binding 2021-02-11 15:04:17 -08:00
bcmsysport.c of: net: pass the dst buffer to of_get_mac_address() 2021-04-13 14:35:02 -07:00
bcmsysport.h net: broadcom: share header defining UniMAC registers 2021-01-08 19:17:28 -08:00
bgmac-bcma-mdio.c
bgmac-bcma.c of: net: pass the dst buffer to of_get_mac_address() 2021-04-13 14:35:02 -07:00
bgmac-platform.c net: ethernet: bgmac: Use devm_platform_ioremap_resource_byname 2021-06-07 14:07:22 -07:00
bgmac.c net: broadcom: share header defining UniMAC registers 2021-01-08 19:17:28 -08:00
bgmac.h net: broadcom: share header defining UniMAC registers 2021-01-08 19:17:28 -08:00
bnx2_fw.h
bnx2.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-05-27 09:55:10 -07:00
bnx2.h
cnic_defs.h
cnic_if.h
cnic.c cnic: convert tasklets to use new tasklet_setup() API 2020-09-14 13:02:37 -07:00
cnic.h
Kconfig bnxt_en: Add PTP clock APIs, ioctls, and ethtool methods 2021-06-28 13:41:05 -07:00
Makefile net: broadcom: rename BCM4908 driver & update DT binding 2021-02-11 15:04:17 -08:00
sb1250-mac.c
tg3.c PCI/VPD: Remove pci_vpd_find_tag() 'offset' argument 2021-04-30 14:38:32 -05:00
tg3.h tg3: improve PCI VPD access 2021-01-25 15:24:19 -08:00
unimac.h net: broadcom: share header defining UniMAC registers 2021-01-08 19:17:28 -08:00