linux/drivers/net
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
..
appletalk net/appletalk: LTPC needs virt_to_bus 2015-02-20 16:28:46 -05:00
arcnet com20020-pci: add support for eae single card 2015-02-15 08:21:34 -08:00
bonding net/bonding: Fix potential bad memory access during bonding events 2015-02-09 14:03:53 -08:00
caif caif: remove wrong dev_net_set() call 2015-01-29 14:20:02 -08:00
can can: flexcan: Deferred on Regulator return EPROBE_DEFER 2015-03-22 19:20:10 +01:00
cris
dsa net: dsa: bcm_sf2: fix 64-bits register reads 2015-02-20 17:52:46 -05:00
ethernet bnx2x: Fix statistics locking scheme 2015-03-23 22:38:24 -04:00
fddi net: fddi: skfp: smt.c: Remove unused function 2015-01-02 16:36:07 -05:00
hamradio
hippi
hyperv hyperv: fix sparse warnings 2015-02-05 16:03:27 -08:00
ieee802154 ieee802154: cc2520: Fix space before , coding style issue 2015-02-02 06:09:35 +01:00
ipvlan ipvlan: add a missing __percpu pcpu_stats 2015-02-11 20:03:23 -08:00
irda irda: vlsi_ir: Replace timeval with ktime_t 2015-01-11 21:39:40 -05:00
phy amd-xgbe-phy: PHY KX/KR mode differences 2015-02-25 16:57:42 -05:00
plip
ppp ppp: deflate: never return len larger than output buffer 2015-01-29 14:50:01 -08:00
slip
team team: don't traverse port list using rcu in team_set_mac_address 2015-03-04 16:01:16 -05:00
usb cx82310_eth: wait for firmware to become ready 2015-03-21 18:23:19 -04:00
vmxnet3 Driver: Vmxnet3: Change the hex constant to its decimal equivalent 2015-02-08 16:55:01 -08:00
wan wan: cosa: replace current->state by set_current_state() 2015-02-22 15:24:10 -05:00
wimax
wireless iwlwifi: 2015-03-10 13:43:02 -04:00
xen-netback xen-netback: notify immediately after pushing Tx response. 2015-03-11 23:30:44 -04:00
dummy.c
eql.c
ifb.c
Kconfig ipvlan: Fix text that talks about ip util support 2015-02-20 16:35:44 -05:00
LICENSE.SRC
loopback.c
macvlan.c macvlan: advertise link netns via netlink 2015-01-23 17:51:15 -08:00
macvtap.c macvtap: make sure neighbour code can push ethernet header 2015-02-28 23:57:19 -05:00
Makefile
mdio.c
mii.c mii: Handle link state changes for forced modes in mii_check_media() 2015-01-19 15:43:42 -05:00
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tun.c net: rfs: add hash collision detection 2015-02-08 16:53:57 -08:00
veth.c veth: advertise link netns via netlink 2015-01-23 17:51:15 -08:00
virtio_net.c virtio-net: correctly delete napi hash 2015-03-12 14:37:17 -04:00
vxlan.c vxlan: fix wrong usage of VXLAN_VID_MASK 2015-03-13 13:08:07 -04:00
xen-netfront.c xen-netfront: Use static attribute groups for sysfs entries 2015-02-05 00:31:12 -08:00