linux_dsm_epyc7002/drivers/net/ethernet
Yuval Mintz dff173de84 bnx2x: Fix statistics locking scheme
Statistics' state-machine in bnx2x driver must be synced with various driver
flows, but its current locking scheme manages to be wasteful [using 2 locks +
additional local variable] and prone to race-conditions at the same time,
as the state-machine and 'action' are being accessed under different locks.

In addition, current 'safe exec' isn't in fact safe, since the only guarantee
it gives is that DMA transactions are over, but ramrods might still be running.

This patch cleans up said logic, leaving us with a single lock for the entire
flow and removing the possible races.

Changes from v2:
	- Switched into mutex locking from semaphore locking.
	- Release locks on error flows.

Changes from v1:
	Failure to acquire lock fails flow instead of printing a warning and
	allowing access to the critical section.

Signed-off-by: Yuval Mintz <Yuval.Mintz@qlogic.com>
Signed-off-by: Ariel Elior <Ariel.Elior@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-03-23 22:38:24 -04:00
..
3com drivers/net: Use setup_timer and mod_timer 2015-02-11 19:40:12 -08:00
8390 net: 8390: axnet_cs: Use setup_timer and mod_timer 2015-03-01 13:40:23 -05:00
adaptec
adi
aeroflex
agere et131x: use msecs_to_jiffies for conversions 2015-02-11 19:37:43 -08:00
allwinner
alteon net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
altera altera_tse: Fixes in NAPI and interrupt handling paths 2015-02-23 18:07:36 -05:00
amd net: ethernet: pcnet32: Setup the SRAM and NOUFLO on Am79C97{3, 5} 2015-03-20 12:56:40 -04:00
apm net: eth: xgene: fix booting with devicetree 2015-03-05 15:40:10 -05:00
apple
arc
atheros Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-01-15 00:53:17 -05:00
broadcom bnx2x: Fix statistics locking scheme 2015-03-23 22:38:24 -04:00
brocade net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
cadence net: macb: constify macb configuration data 2015-03-09 15:53:42 -04:00
calxeda
chelsio cxgb4: fix coccinelle warnings 2015-03-10 13:42:00 -04:00
cirrus Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-02-05 14:33:28 -08:00
cisco enic: do notify_check before returning credits 2015-02-27 15:53:43 -05:00
davicom dm9000: Add regulator and reset support to dm9000 2015-01-15 14:08:07 -05:00
dec tulip_core.c : out-of-bounds check. 2015-03-13 12:43:25 -04:00
dlink
emulex be2net: use PCI MMIO read instead of config read for errors 2015-03-20 13:25:51 -04:00
faraday
freescale Revert "net: fec: fix the warning found by dma debug" 2015-03-13 13:10:37 -04:00
fujitsu
hisilicon net: hip04: add missing MODULE_LICENSE 2015-02-02 18:51:03 -08:00
hp
i825xx
ibm ibmveth: enable interrupts after napi_complete() 2015-03-10 00:22:22 -04:00
icplus
intel i40e: check pointers before use 2015-02-26 04:54:03 -08:00
marvell Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-01-27 16:59:56 -08:00
mellanox net/mlx4_en: Set statistics bitmap at port init 2015-03-18 15:17:11 -04:00
micrel
microchip
moxa
myricom myri10ge: Delete an unnecessary check before the function call "kfree" 2015-02-05 00:25:10 -08:00
natsemi net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
neterion vxge: fix sparse warning 2015-02-05 16:07:06 -08:00
nuvoton
nvidia net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
nxp
octeon
oki-semi
packetengines
pasemi net: pasemi: Use setup_timer and mod_timer 2015-03-01 13:40:23 -05:00
qlogic netxen_nic: Fix trivial typos in comments 2015-03-01 13:40:22 -05:00
qualcomm
rdc
realtek r8169: Fix trivial typo in rtl_check_firmware 2015-02-24 16:26:07 -05:00
renesas sh_eth: Really fix padding of short frames on TX 2015-03-02 21:30:56 -05:00
rocker rocker: silence shift wrapping warning 2015-02-27 15:53:44 -05:00
samsung Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-02-09 14:35:57 -08:00
seeq
sfc
sgi
silan
sis
smsc Revert "smc91x: retrieve IRQ and trigger flags in a modern way" 2015-03-17 15:04:57 -04:00
stmicro stmmac: check IRQ availability early on probe 2015-03-04 15:43:26 -05:00
sun niu: fix error handling in niu_class_to_ethflow() 2015-02-28 12:58:25 -05:00
tehuti net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
ti Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-03-03 15:30:07 -08:00
tile tile: use %*pb[l] to print bitmaps including cpumasks and nodemasks 2015-02-13 21:21:37 -08:00
toshiba
tundra
via mii: Handle link state changes for forced modes in mii_check_media() 2015-01-19 15:43:42 -05:00
wiznet net: WIZnet drivers: enable interrupts after napi_complete() 2015-03-10 00:22:54 -04:00
xilinx
xircom
xscale ethernet/ixp4xx: prevent allmulti from clobbering promisc 2015-02-20 15:49:07 -05:00
dnet.c
dnet.h
ec_bhf.c
ethoc.c
fealnx.c
jme.c net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
jme.h
Kconfig
korina.c
lantiq_etop.c
Makefile
netx-eth.c