linux-brain/drivers/net/ethernet/broadcom/bnxt
Michael Chan 447b160289 bnxt_en: Add missing DMA memory barriers
[ Upstream commit 828affc27ed43441bd1efdaf4e07e96dd43a0362 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-08-26 08:36:18 -04:00
..
Makefile
bnxt.c bnxt_en: Add missing DMA memory barriers 2021-08-26 08:36:18 -04:00
bnxt.h bnxt_en: Re-write PCI BARs after PCI fatal error. 2020-11-01 12:01:04 +01:00
bnxt_coredump.h
bnxt_dcb.c
bnxt_dcb.h
bnxt_debugfs.c
bnxt_debugfs.h
bnxt_devlink.c
bnxt_devlink.h bnxt_en: Reduce BNXT_MSIX_VEC_MAX value to supported CQs per PF. 2020-05-14 07:58:23 +02:00
bnxt_dim.c
bnxt_ethtool.c bnxt_en: read EEPROM A2h address using page 0 2020-11-24 13:28:55 +01:00
bnxt_ethtool.h
bnxt_fw_hdr.h
bnxt_hsi.h
bnxt_nvm_defs.h
bnxt_sriov.c bnxt_en: fix NULL dereference in case SR-IOV configuration fails 2020-07-16 08:16:41 +02:00
bnxt_sriov.h
bnxt_tc.c
bnxt_tc.h
bnxt_ulp.c bnxt_en: Refresh RoCE capabilities in bnxt_ulp_probe() 2021-07-28 13:30:57 +02:00
bnxt_ulp.h bnxt_en: Improve bnxt_ulp_stop()/bnxt_ulp_start() call sequence. 2021-07-28 13:30:56 +02:00
bnxt_vfr.c
bnxt_vfr.h
bnxt_xdp.c
bnxt_xdp.h