linux/drivers/net/ethernet/mellanox/mlx4
Yishai Hadas f5aef5aa35 net/mlx4_core: Activate reset flow upon fatal command cases
We activate reset flow upon command fatal errors, when the device enters an
erroneous state, and must be reset.

The cases below are assumed to be fatal: FW command timed-out, an error from FW
on closing commands, pci is offline when posting/pending a command.

In those cases we place the device into an error state: chip is reset, pending
commands are awakened and completed immediately. Subsequent commands will
return immediately.

The return code in the above cases will depend on the command. Commands which
free and close resources will return success (because the chip was reset, so
callers may safely free their kernel resources). Other commands will return -EIO.

Since the device's state was marked as error, the catas poller will
detect this and restart the device's software stack (as is done when a FW
internal error is directly detected). The device state is protected by a
persistent mutex lives on its mlx4_dev, as such no need any more for the
hcr_mutex which is removed.

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
..
alloc.c net/mlx4_core: Maintain a persistent memory for mlx4 device 2015-01-25 14:43:13 -08:00
catas.c net/mlx4_core: Activate reset flow upon fatal command cases 2015-01-25 14:43:14 -08:00
cmd.c net/mlx4_core: Activate reset flow upon fatal command cases 2015-01-25 14:43:14 -08:00
cq.c net/mlx4_core: Use tasklet for user-space CQ completion events 2014-12-11 14:47:34 -05:00
en_clock.c mlx4: include clocksource.h again 2015-01-02 16:47:36 -05:00
en_cq.c net/mlx4_core: Maintain a persistent memory for mlx4 device 2015-01-25 14:43:13 -08:00
en_dcb_nl.c net/mlx4_en: Fix UP limit in ieee_ets->prio_tc 2014-03-02 20:04:00 -05:00
en_ethtool.c net/mlx4_core: Maintain a persistent memory for mlx4 device 2015-01-25 14:43:13 -08:00
en_main.c net/mlx4_core: Maintain a persistent memory for mlx4 device 2015-01-25 14:43:13 -08:00
en_netdev.c net/mlx4_core: Maintain a persistent memory for mlx4 device 2015-01-25 14:43:13 -08:00
en_port.c net/mlx4_en: Extend checksum offloading by CHECKSUM COMPLETE 2014-11-11 13:20:02 -05:00
en_port.h net/mlx4_en: Use PTYS register to query ethtool settings 2014-10-28 17:18:00 -04:00
en_resources.c net/mlx4_en: Add netdev support for TCP/IP offloads of vxlan tunneling 2013-12-31 14:31:43 -05:00
en_rx.c net/mlx4_core: Maintain a persistent memory for mlx4 device 2015-01-25 14:43:13 -08:00
en_selftest.c ethtool, net/mlx4_en: Add 100M, 20G, 56G speeds ethtool reporting support 2014-10-28 17:18:00 -04:00
en_tx.c net/mlx4_core: Maintain a persistent memory for mlx4 device 2015-01-25 14:43:13 -08:00
eq.c net/mlx4_core: Maintain a persistent memory for mlx4 device 2015-01-25 14:43:13 -08:00
fw.c net/mlx4: Cache line CQE/EQE stride fixes 2014-12-16 15:23:53 -05:00
fw.h net/mlx4_core: Avoid double dumping of the PF device capabilities 2014-12-15 11:34:54 -05:00
icm.c net/mlx4_core: Maintain a persistent memory for mlx4 device 2015-01-25 14:43:13 -08:00
icm.h mlx4_core: Fix GFP flags parameters to be gfp_t 2014-06-04 10:19:13 -07:00
intf.c
Kconfig net/mlx4: Set proper build dependancy with vxlan 2014-04-01 16:25:51 -04:00
main.c net/mlx4_core: Enhance the catas flow to support device reset 2015-01-25 14:43:14 -08:00
Makefile net/mlx4_en: Add HW timestamping (TS) support 2013-04-24 16:30:14 -04:00
mcg.c net/mlx4_core: Activate reset flow upon fatal command cases 2015-01-25 14:43:14 -08:00
mlx4_en.h net/mlx4: Change QP allocation scheme 2014-12-11 14:47:35 -05:00
mlx4.h net/mlx4_core: Activate reset flow upon fatal command cases 2015-01-25 14:43:14 -08:00
mr.c net/mlx4_core: Maintain a persistent memory for mlx4 device 2015-01-25 14:43:13 -08:00
pd.c net/mlx4_core: Maintain a persistent memory for mlx4 device 2015-01-25 14:43:13 -08:00
port.c net/mlx4_core: Maintain a persistent memory for mlx4 device 2015-01-25 14:43:13 -08:00
profile.c net/mlx4_core: Flexible (asymmetric) allocation of EQs and MSI-X vectors for PF/VFs 2014-11-13 15:16:21 -05:00
qp.c net/mlx4: Add support for A0 steering 2014-12-11 14:47:36 -05:00
reset.c net/mlx4_core: Maintain a persistent memory for mlx4 device 2015-01-25 14:43:13 -08:00
resource_tracker.c net/mlx4_core: Maintain a persistent memory for mlx4 device 2015-01-25 14:43:13 -08:00
sense.c Merge branch 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2012-10-02 09:54:49 -07:00
srq.c IB/mlx4: Implement IB_QP_CREATE_USE_GFP_NOIO 2014-06-02 14:58:11 -07:00