OpenCloudOS-Kernel/drivers/net/ethernet
Michael Chan 72bb72b0d9 tg3: Prevent system hang during repeated EEH errors.
The current tg3 code assumes the pci_error_handlers to be always called
in sequence.  In particular, during ->error_detected(), NAPI is disabled
and the device is shutdown.  The device is later reset and NAPI
re-enabled in ->slot_reset() and ->resume().

In EEH, if more than 6 errors are detected in a hour, only
->error_detected() will be called.  This will leave the driver in an
inconsistent state as NAPI is disabled but netif_running state is still
true.  When the device is later closed, we'll try to disable NAPI again
and it will loop forever.

We fix this by closing the device if we encounter any error conditions
during the normal sequence of the pci_error_handlers.

v2: Remove the changes in tg3_io_resume() based on Benjamin Poirier's
    feedback.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Nithin Nayak Sujir <nsujir@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-06-17 16:02:19 -07:00
..
3com 3c59x: consolidate error cleanup in vortex_init_one() 2013-06-12 01:53:52 -07:00
8390 net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
adaptec net: vlan: add protocol argument to packet tagging functions 2013-04-19 14:46:06 -04:00
adi net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
aeroflex net: ethernet: use platform_{get,set}_drvdata() 2013-05-25 21:27:58 -07:00
allwinner net: sun4i-emac: Staticize local symbols 2013-06-04 17:40:10 -07:00
alteon net/ethernet/alteon/acenic: Use module_pci_driver to register driver 2013-05-22 14:35:04 -07:00
amd net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
apple net: Revert unused variable changes. 2013-05-23 12:15:32 -07:00
atheros net/ethernet/atheros/atlx/atl1: Use module_pci_driver to register driver 2013-05-22 14:35:03 -07:00
broadcom tg3: Prevent system hang during repeated EEH errors. 2013-06-17 16:02:19 -07:00
brocade bna: Driver and Firmware Updated 2013-05-20 14:07:59 -07:00
cadence net/macb: change RX path for GEM 2013-06-06 16:22:45 -07:00
calxeda net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
chelsio cxgb4: Do not set net_device::dev_id to VI index 2013-06-13 01:24:17 -07:00
cirrus net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
cisco net: vlan: add protocol argument to packet tagging functions 2013-04-19 14:46:06 -04:00
davicom net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
dec tulip: remove redundant D0 power state set 2013-05-31 01:39:08 -07:00
dlink drivers:net: Remove unnecessary OOM messages after netdev_alloc_skb 2013-03-09 16:09:19 -05:00
emulex Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-06-05 16:37:30 -07:00
faraday net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
freescale gianfar: Add backwards compatible Single Queue mode polling 2013-06-12 03:16:20 -07:00
fujitsu Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-05-01 14:08:52 -07:00
hp drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
i825xx drivers:net: Remove unnecessary OOM messages after netdev_alloc_skb 2013-03-09 16:09:19 -05:00
ibm ibm-ethernet: delete stale MCA and duplicate PSERIES dependency 2013-06-03 00:24:31 -07:00
icplus Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-05-24 16:48:28 -07:00
intel ixgbe: add extra stats for ndo_ll_poll 2013-06-10 21:22:36 -07:00
marvell net: mvneta: read MAC address from hardware when available 2013-06-04 17:23:51 -07:00
mellanox net/mlx4: Add VF link state support 2013-06-13 17:51:04 -07:00
micrel net: micrel : ks8851-ml: add dt support 2013-05-27 23:17:53 -07:00
microchip net: ethernet: enc28j60: use spi_get_drvdata() and spi_set_drvdata() 2013-04-07 16:48:19 -04:00
myricom net: vlan: add protocol argument to packet tagging functions 2013-04-19 14:46:06 -04:00
natsemi net: vlan: add protocol argument to packet tagging functions 2013-04-19 14:46:06 -04:00
neterion net: vlan: add protocol argument to packet tagging functions 2013-04-19 14:46:06 -04:00
nuvoton net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
nvidia net/ethernet/nvidia/forcedeth: Use module_pci_driver to register driver 2013-05-22 14:35:05 -07:00
nxp net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
octeon net: ethernet: use platform_{get,set}_drvdata() 2013-05-25 21:27:58 -07:00
oki-semi pch_gbe: minor: report the actual error on MTU change 2013-04-16 16:43:35 -04:00
packetengines Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
pasemi drivers:net: dma_alloc_coherent: use __GFP_ZERO instead of memset(, 0) 2013-03-17 12:50:24 -04:00
qlogic Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-06-05 16:37:30 -07:00
rdc drivers:net: Remove unnecessary OOM messages after netdev_alloc_skb 2013-03-09 16:09:19 -05:00
realtek 8139cp: reset BQL when ring tx ring cleared 2013-05-20 14:02:35 -07:00
renesas sh_eth: remove '__maybe_unused' annotations 2013-06-13 02:45:19 -07:00
seeq net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
sfc sfc: Store port number in private data, not net_device::dev_id 2013-06-12 03:15:02 -07:00
sgi net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
silan net/ethernet/silan/sc92031: Use module_pci_driver to register driver 2013-05-22 14:35:03 -07:00
sis net/ethernet/sis/sis190: Use module_pci_driver to register driver 2013-05-22 14:35:03 -07:00
smsc net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
stmicro net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
sun net: ethernet: use platform_{get,set}_drvdata() 2013-05-25 21:27:58 -07:00
tehuti net: vlan: add protocol argument to packet tagging functions 2013-04-19 14:46:06 -04:00
ti drivers: net: ethernet: cpsw: add phy-mode support to cpsw driver 2013-06-04 14:17:22 -07:00
tile tile: support new Tilera hypervisor 2013-05-02 16:20:31 -04:00
toshiba net/ethernet/toshiba/tc35815: Use module_pci_driver to register driver 2013-05-22 14:35:04 -07:00
tundra net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
via net: velocity: Add platform device support to VIA velocity driver 2013-05-20 13:40:39 -07:00
wiznet net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
xilinx net: emaclite: Convert to use devm_ioremap_resource 2013-06-12 02:22:35 -07:00
xircom Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-05-01 14:08:52 -07:00
xscale net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
Kconfig net: Add EMAC ethernet driver found on Allwinner A10 SoC's 2013-05-31 17:23:07 -07:00
Makefile net: Add EMAC ethernet driver found on Allwinner A10 SoC's 2013-05-31 17:23:07 -07:00
dnet.c net: phy: remove flags argument from phy_{attach, connect, connect_direct} 2013-01-14 15:11:50 -05:00
dnet.h
ethoc.c net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
fealnx.c drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
jme.c net, jme: remove redundant D0 power state set 2013-05-31 01:39:08 -07:00
jme.h
korina.c net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
lantiq_etop.c lantiq_etop: use free_netdev(netdev) instead of kfree() 2013-03-21 11:50:10 -04:00
netx-eth.c net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
s6gmac.c net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00