1
0
Fork 0
alistair23-linux/drivers/net/ethernet
Edward Cree e283546c04 sfc:On MCDI timeout, issue an FLR (and mark MCDI to fail-fast)
When an MCDI command times out (whether or not we find it
completed when we poll), call efx_mcdi_abandon(), which tells
all subsequent MCDI calls to fail-fast, and queues up an FLR.

Because an FLR doesn't lead to receiving any reboot even from
the MC (unlike most other types of reset), we have to call
efx_ef10_reset_mc_allocations.
In efx_start_all(), if a reset (of any kind) is pending, we
bail out.
Without this, attempts to reconfigure (e.g. change mtu) can
cause driver/mc state inconsistency if the first MCDI call
triggers an FLR.

For similar reasons, on EF10, in
efx_reset_down(method=RESET_TYPE_MCDI_TIMEOUT), set the number
of active queues to zero before calling efx_stop_all().
And, on farch, in efx_reset_up(method=RESET_TYPE_MCDI_TIMEOUT),
set active_queues and flushes pending & outstanding to zero.

efx_mcdi_mode_{poll,event}() should not take us out of fail-fast
 mode. Instead, this is done by efx_mcdi_reset() after the FLR
completes.

The new FLR reset_type RESET_TYPE_MCDI_TIMEOUT doesn't really
fit into the hierarchy of reset 'scopes' whereby efx_reset()
decides some resets subsume others.  Thus, it uses separate logic.

Also, fixed up some inconsistency around RESET_TYPE_MC_BIST,
which was in the wrong place in that hierarchy.

Signed-off-by: Shradha Shah <sshah@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-04-16 14:33:57 -04:00
..
3com Kconfig: rename HAS_IOPORT to HAS_IOPORT_MAP 2014-04-07 16:36:11 -07:00
8390 net/apne: replace IS_ERR and PTR_ERR with PTR_ERR_OR_ZERO 2014-04-12 01:59:38 -04:00
adaptec net: starfire: remove unnecessary pci_set_drvdata() 2013-10-18 00:03:28 -04:00
adi bfin_mac: remove empty MDIO bus reset function 2014-03-28 01:38:02 -04:00
aeroflex net: greth: remove empty MDIO bus reset function 2014-03-28 01:38:01 -04:00
allwinner net: sun4i-emac: add promiscuous support 2014-04-12 01:59:38 -04:00
alteon drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
altera altera: Remove casts of pointer to same type 2014-03-26 15:46:15 -04:00
amd pcnet32: Call dev_kfree_skb_any instead of dev_kfree_skb. 2014-03-24 21:18:53 -07:00
apple macmace: add missing platform_set_drvdata() in mace_probe() 2013-11-11 14:02:08 -05:00
arc Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-01-06 17:37:45 -05:00
atheros atl1e: remove open-coded skb_cow_head. 2014-03-29 17:49:47 -04:00
broadcom bnx2: Don't build unused suspend/resume functions not enabled 2014-04-14 12:40:00 -04:00
brocade bna: remove open-coded skb_cow_head. 2014-03-29 17:49:47 -04:00
cadence net: cadence: Add architecture dependencies 2014-04-15 00:08:22 -04:00
calxeda xgmac: Call dev_kfree/consume_skb_any instead of dev_kfree_skb. 2014-03-24 21:18:56 -07:00
chelsio cxgb4: use the correct max size for firmware flash 2014-04-15 15:50:02 -04:00
cirrus cs89x0: Call dev_consume_skb_any instead of dev_kfree_skb. 2014-03-24 21:18:58 -07:00
cisco net: enic: include irq.h for irqreturn_t definitions 2014-04-03 14:04:34 -04:00
davicom dm9000: Call dev_consume_skb_any instead of dev_kfree_skb. 2014-03-24 21:18:59 -07:00
dec uli526x: Call dev_kfree/consume_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:00 -07:00
dlink sundance: Call dev_kfree_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:01 -07:00
emulex be2net: Fix invocation of be_close() after be_clear() 2014-04-14 13:41:37 -04:00
faraday net: ftgmac100: remove empty MDIO bus reset function 2014-03-28 01:38:02 -04:00
freescale net: fec: make sure to init MAC address 2014-03-31 16:34:19 -04:00
fujitsu drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
hp hp100: replace hardcoded name in /proc/interrupts with interface name 2013-09-27 17:38:32 -04:00
i825xx i825xx: Call dev_kfree_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:02 -07:00
ibm ibmveth: Call dev_consume_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:03 -07:00
icplus drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
intel i40evf: program RSS LUT correctly 2014-04-11 06:23:25 -07:00
marvell Revert "net: mvneta: fix usage as a module on RGMII configurations" 2014-04-13 23:13:13 -04:00
mellanox net/mlx4_core: Defer VF initialization till PF is fully initialized 2014-04-14 13:24:42 -04:00
micrel Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-03-25 20:29:20 -04:00
microchip net: ethernet: enc28j60: use spi_get_drvdata() and spi_set_drvdata() 2013-04-07 16:48:19 -04:00
moxa drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
myricom myri10ge: Use pci_enable_msix_range() instead of pci_enable_msix() 2014-02-18 15:33:32 -05:00
natsemi Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-01-25 11:17:34 -08:00
neterion vxge: Call dev_kfree_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:07 -07:00
nuvoton drivers:net: delete premature free_irq 2013-09-04 13:18:19 -04:00
nvidia forcedeth: Call dev_kfree_skb_any instead of kfree_skb. 2014-03-24 21:19:08 -07:00
nxp drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
octeon Merge branch 'for-linus-dma-masks' of git://git.linaro.org/people/rmk/linux-arm 2013-11-14 07:55:21 +09:00
oki-semi net: ptp: do not reimplement PTP/BPF classifier 2014-03-31 00:45:09 -04:00
packetengines net: packetengines: slight optimization of addr 2013-12-31 16:48:32 -05:00
pasemi drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
qlogic qlcnic: Fix MSI-X initialization code 2014-04-15 15:14:19 -04:00
rdc r6040: remove empty MDIO bus reset function 2014-03-28 01:38:02 -04:00
realtek net: Replace u64_stats_fetch_begin_bh to u64_stats_fetch_begin_irq 2014-03-14 22:41:36 -04:00
renesas sh_eth: ensure pm_runtime cannot suspend the device during init 2014-03-28 15:59:44 -04:00
samsung sxgbe: fix duplicate #include headers 2014-04-07 13:18:44 -04:00
seeq drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
sfc sfc:On MCDI timeout, issue an FLR (and mark MCDI to fail-fast) 2014-04-16 14:33:57 -04:00
sgi drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
silan sc92031: Call dev_consume_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:08 -07:00
sis sis900: Call dev_kfree_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:09 -07:00
smsc net: smc911x: Remove unused local variable 2014-04-04 10:02:21 -04:00
stmicro net: stmmac: Add SOCFPGA glue driver 2014-03-28 15:06:32 -04:00
sun sungem: Call dev_consume_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:12 -07:00
tehuti net: Spelling s/transmition/transmission/ 2014-01-14 17:11:26 -08:00
ti drivers: net: cpsw: enable interrupts after napi enable and clearing previous interrupts 2014-04-11 16:27:41 -04:00
tile tilepro: Call dev_consume_skb_any instead of kfree_skb. 2014-03-24 21:19:12 -07:00
toshiba spider_net: Call dev_consume_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:13 -07:00
tundra drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
via Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-03-25 20:29:20 -04:00
wiznet net: w5100: Use devm_ioremap_resource() 2014-02-28 16:57:24 -05:00
xilinx net: emaclite: remove empty MDIO bus reset function 2014-03-28 01:38:02 -04:00
xircom ethernet: Fix FSF address in file headers 2013-12-06 12:37:55 -05:00
xscale net: ptp: move PTP classifier in its own file 2014-04-01 16:43:18 -04:00
Kconfig net: sxgbe: add basic framework for Samsung 10Gb ethernet driver 2014-03-26 16:49:31 -04:00
Makefile net: sxgbe: add basic framework for Samsung 10Gb ethernet driver 2014-03-26 16:49:31 -04:00
dnet.c dnet: remove empty MDIO bus reset function 2014-03-28 01:38:02 -04:00
dnet.h
ethoc.c net: ethoc: remove empty MDIO bus function 2014-03-28 01:38:02 -04:00
fealnx.c net: fealnx: remove unnecessary pci_set_drvdata() 2013-10-21 17:21:01 -04:00
jme.c jme: remove open-coded skb_cow_head. 2014-03-29 17:49:47 -04:00
jme.h jme: Remove unused #define PFX 2013-11-07 02:14:32 -05:00
korina.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
lantiq_etop.c netdevice: add queue selection fallback handler for ndo_select_queue 2014-02-17 00:36:34 -05:00
netx-eth.c ethernet: Fix FSF address in file headers 2013-12-06 12:37:55 -05:00
s6gmac.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00