OpenCloudOS-Kernel/drivers/net/ethernet
Yishai Hadas 55ad359225 net/mlx4_core: Enable device recovery flow with SRIOV
In SRIOV, both the PF and the VF may attempt device recovery whenever they
assume that the device is not functioning.  When the PF driver resets the
device, the VF should detect this and attempt to reinitialize itself.

The VF must be able to reset itself under all circumstances, even
if the PF is not responsive.

The VF shall reset itself in the following cases:

1. Commands are not processed within reasonable time over the communication channel.
This is done considering device state and the correct return code based on
the command as was done in the native mode, done in the next patch.

2. The VF driver receives an internal error event reported by the PF on the
communication channel. This occurs when the PF driver resets the device or
when VF is out of sync with the PF.

Add 'VF reset' capability, which allows the VF to reinitialize itself even when the
PF is not responsive.

As PF and VF may run their reset flow simulantanisly, there are several cases
that are handled:
- Prevent freeing VF resources upon FLR, when PF is in its unloading stage.
- Prevent PF getting VF commands before it has finished initializing its resources.
- Upon VF startup, check that comm-channel is online before sending
  commands to the PF and getting timed-out.

Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-01-25 14:43:14 -08:00
..
3com net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
8390 ne2k-pci: Add pci_disable_device in error handling 2014-12-27 02:20:55 -05:00
adaptec PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
adi net: ethernet: adi: drop owner assignment from platform_drivers 2014-10-20 16:21:03 +02:00
aeroflex net: ethernet: aeroflex: drop owner assignment from platform_drivers 2014-10-20 16:21:03 +02:00
agere et131x: Add PCIe gigabit ethernet driver et131x to drivers/net 2014-10-03 12:22:19 -07:00
allwinner net: sun4i-emac: fix error return code 2014-12-31 19:19:00 -05:00
alteon net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
altera Altera TSE: Add missing phydev 2015-01-02 15:45:10 -05:00
amd mii: Handle link state changes for forced modes in mii_check_media() 2015-01-19 15:43:42 -05:00
apm net: eth: xgene: devm_ioremap() returns NULL on error 2015-01-12 15:40:18 -05:00
apple net: ethernet: apple: drop owner assignment from platform_drivers 2014-10-20 16:21:04 +02:00
arc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-09-23 12:09:27 -04:00
atheros Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-01-15 00:53:17 -05:00
broadcom Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-01-15 00:53:17 -05:00
brocade net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
cadence net/macb: Create gem_ethtool_ops for new statistics functions 2015-01-16 00:31:37 -05:00
calxeda net: ethernet: Remove superfluous ether_setup after alloc_etherdev 2014-10-03 15:31:40 -07:00
chelsio cxgb3: re-use native hex2bin() 2015-01-25 00:09:41 -08:00
cirrus cirrus: cs89x0: fix time comparison 2014-12-15 11:44:21 -05:00
cisco net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
davicom dm9000: Add regulator and reset support to dm9000 2015-01-15 14:08:07 -05:00
dec uli526x: fix misspelling of current function in string 2014-12-09 16:18:46 -05:00
dlink PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
emulex be2net: Fix TX rate limiting on Lancer/Skyhawk-R VFs 2015-01-24 17:22:42 -08:00
faraday net: ethernet: faraday: drop owner assignment from platform_drivers 2014-10-20 16:21:07 +02:00
freescale net: fec: fix the warning found by dma debug 2015-01-24 21:53:41 -08:00
fujitsu drivers/net: ethernet: Remove typedef for struct and enum 2014-08-07 16:02:58 -07:00
hisilicon net: hisilicon: new hip04 ethernet driver 2015-01-14 01:52:45 -05:00
hp hp100: fix misspelling of current function in string 2014-12-09 16:18:47 -05:00
i825xx net: ethernet: i825xx: drop owner assignment from platform_drivers 2014-10-20 16:21:08 +02:00
ibm net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
icplus PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
intel net: e1000e: support txtd update delay via xmit_more 2015-01-22 18:10:24 -08:00
marvell net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
mellanox net/mlx4_core: Enable device recovery flow with SRIOV 2015-01-25 14:43:14 -08:00
micrel ksz884x: Use setup_timer 2014-12-30 18:34:23 -05:00
microchip
moxa net: ethernet: moxa: drop owner assignment from platform_drivers 2014-10-20 16:21:10 +02:00
myricom myri10ge: fix error return code 2014-12-31 19:19:00 -05:00
natsemi net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
neterion net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
nuvoton net: ethernet: nuvoton: drop owner assignment from platform_drivers 2014-10-20 16:21:10 +02:00
nvidia net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
nxp net: ethernet: Remove superfluous ether_setup after alloc_etherdev 2014-10-03 15:31:40 -07:00
octeon net: ethernet: octeon: drop owner assignment from platform_drivers 2014-10-20 16:21:11 +02:00
oki-semi pch_gbe: 'select' NET_PTP_CLASSIFY. 2014-09-22 13:25:51 -04:00
packetengines drivers/net: Convert remaining uses of pr_warning to pr_warn 2014-09-09 20:37:08 -07:00
pasemi net-PA Semi: Deletion of unnecessary checks before the function call "pci_dev_put" 2014-12-05 21:14:20 -08:00
qlogic net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
qualcomm net: qualcomm: Fix dependency 2014-11-11 18:12:32 -05:00
rdc PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
realtek net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
renesas net: sh_eth: Use u32 for 32-bit register data 2015-01-15 14:10:27 -05:00
rocker net: rocker: Add basic netdev counters - v2 2015-01-18 01:55:43 -05:00
samsung net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
seeq net: ethernet: seeq: drop owner assignment from platform_drivers 2014-10-20 16:21:12 +02:00
sfc ethtool: Support for configurable RSS hash function 2014-12-08 21:07:10 -05:00
sgi net: ethernet: sgi: drop owner assignment from platform_drivers 2014-10-20 16:21:12 +02:00
silan PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
sis PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
smsc net: smc91x: Add Atari EtherNAT support 2015-01-15 19:32:58 -05:00
stmicro net: stmmac: dwmac-rk: Use standard devicetree property for phy regulator 2015-01-24 17:17:07 -08:00
sun niu: remove one compound_head() call 2015-01-17 23:58:37 -05:00
tehuti net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
ti net: netcp: Enhance GBE driver to support 10G Ethernet 2015-01-19 15:07:39 -05:00
tile Merge branch 'for-3.18-consistent-ops' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2014-10-15 07:48:18 +02:00
toshiba net: spider_net: avoid using signed char for bitops 2014-10-05 21:15:16 -04:00
tundra net: ethernet: tundra: drop owner assignment from platform_drivers 2014-10-20 16:21:13 +02:00
via mii: Handle link state changes for forced modes in mii_check_media() 2015-01-19 15:43:42 -05:00
wiznet Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
xilinx net: axienet: fix error return code 2014-12-31 19:19:00 -05:00
xircom ethernet: amd: Remove typedef local_info_t 2014-08-11 12:19:53 -07:00
xscale
Kconfig net: s6gmac: remove driver 2014-12-22 16:29:03 -05:00
Makefile net: s6gmac: remove driver 2014-12-22 16:29:03 -05:00
dnet.c net: dnet: fix dnet_poll() 2015-01-11 21:44:55 -05:00
dnet.h
ec_bhf.c net: ec_bhf: remove excessive debug messages 2014-08-24 18:36:57 -07:00
ethoc.c net: ethernet: drop owner assignment from platform_drivers 2014-10-20 16:21:02 +02:00
fealnx.c PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
jme.c net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
jme.h
korina.c
lantiq_etop.c net: ethernet: drop owner assignment from platform_drivers 2014-10-20 16:21:02 +02:00
netx-eth.c net: ethernet: drop owner assignment from platform_drivers 2014-10-20 16:21:02 +02:00