linux_dsm_epyc7002/drivers/net/ethernet/brocade/bna
Benjamin Poirier d667f78514 bna: Add synchronization for tx ring.
We received two reports of BUG_ON in bnad_txcmpl_process() where
hw_consumer_index appeared to be ahead of producer_index. Out of order
write/read of these variables could explain these reports.

bnad_start_xmit(), as a producer of tx descriptors, has a few memory
barriers sprinkled around writes to producer_index and the device's
doorbell but they're not paired with anything in bnad_txcmpl_process(), a
consumer.

Since we are synchronizing with a device, we must use mandatory barriers,
not smp_*. Also, I didn't see the purpose of the last smp_mb() in
bnad_start_xmit().

Signed-off-by: Benjamin Poirier <bpoirier@suse.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-11-09 13:31:10 -05:00
..
bfa_cee.c bna: get rid of private macros for manipulation with lists 2015-06-11 15:57:17 -07:00
bfa_cee.h bna: QLogic BR-series Adapters Driver Rebranding 2015-02-21 22:05:22 -05:00
bfa_cs.h bna: get rid of duplicate and unused macros 2015-06-11 15:57:15 -07:00
bfa_defs_cna.h bna: replace pragma(pack) with attribute __packed 2015-06-11 15:57:15 -07:00
bfa_defs_mfg_comm.h bna: remove superfluous parentheses 2015-06-21 10:29:02 -07:00
bfa_defs_status.h bna: QLogic BR-series Adapters Driver Rebranding 2015-02-21 22:05:22 -05:00
bfa_defs.h bna: get rid of duplicate and unused macros 2015-06-11 15:57:15 -07:00
bfa_ioc_ct.c bna: remove superfluous parentheses 2015-06-21 10:29:02 -07:00
bfa_ioc.c bna: fix error handling 2015-09-29 13:49:53 -07:00
bfa_ioc.h bna: fix timeout API argument type 2015-06-11 15:57:17 -07:00
bfa_msgq.c bna: get rid of private macros for manipulation with lists 2015-06-11 15:57:17 -07:00
bfa_msgq.h bna: QLogic BR-series Adapters Driver Rebranding 2015-02-21 22:05:22 -05:00
bfi_cna.h bna: replace pragma(pack) with attribute __packed 2015-06-11 15:57:15 -07:00
bfi_enet.h bna: use BIT(x) instead of (1 << x) 2015-06-11 15:57:15 -07:00
bfi_reg.h bna: QLogic BR-series Adapters Driver Rebranding 2015-02-21 22:05:22 -05:00
bfi.h bna: get rid of duplicate and unused macros 2015-06-11 15:57:15 -07:00
bna_enet.c bna: remove unnecessary cast of BIT value 2015-06-21 10:29:00 -07:00
bna_hw_defs.h bna: use BIT(x) instead of (1 << x) 2015-06-11 15:57:15 -07:00
bna_tx_rx.c bna: fix list corruption 2016-03-01 15:19:43 -05:00
bna_types.h bna: check for dma mapping errors 2015-09-20 21:36:57 -07:00
bna.h bna: make pointers to read-only inputs const 2015-06-21 10:29:01 -07:00
bnad_debugfs.c net: bna: use correct type specifier (2) 2016-08-01 13:32:52 -07:00
bnad_ethtool.c bna: fix crash in bnad_get_strings() 2016-09-17 10:18:02 -04:00
bnad.c bna: Add synchronization for tx ring. 2016-11-09 13:31:10 -05:00
bnad.h bna: remove useless linked list 2016-08-08 15:41:27 -07:00
cna_fwimg.c bna: use netdev_* and dev_* instead of printk and pr_* 2015-06-11 15:57:18 -07:00
cna.h bna: get rid of private macros for manipulation with lists 2015-06-11 15:57:17 -07:00
Kconfig bna: QLogic BR-series Adapters Driver Rebranding 2015-02-21 22:05:22 -05:00
Makefile bna: remove obsolete use of EXTRA_CFLAGS 2015-06-10 21:59:02 -07:00