linux_dsm_epyc7002/drivers/net/ethernet/mellanox/mlx4
Jack Morgenstein d585df1c5c net/mlx4_core: Avoid command timeouts during VF driver device shutdown
Some Hypervisors detach VFs from VMs by instantly causing an FLR event
to be generated for a VF.

In the mlx4 case, this will cause that VF's comm channel to be disabled
before the VM has an opportunity to invoke the VF device's "shutdown"
method.

The result is that the VF driver on the VM will experience a command
timeout during the shutdown process when the Hypervisor does not deliver
a command-completion event to the VM.

To avoid FW command timeouts on the VM when the driver's shutdown method
is invoked, we detect the absence of the VF's comm channel at the very
start of the shutdown process. If the comm-channel has already been
disabled, we cause all FW commands during the device shutdown process to
immediately return success (and thus avoid all command timeouts).

Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-01-30 15:45:27 -05:00
..
alloc.c net/mlx4: Avoid wrong virtual mappings 2016-05-05 23:23:05 -04:00
catas.c net/mlx4_core: Avoid command timeouts during VF driver device shutdown 2017-01-30 15:45:27 -05:00
cmd.c ethernet :mellanox :mlx4: Replace pci_pool_alloc by pci_pool_zalloc 2016-11-30 14:56:36 -05:00
cq.c net/mlx4_core: Fix racy CQ (Completion Queue) free 2017-01-16 15:08:28 -05:00
en_clock.c net/mlx4_en: Fix type mismatch for 32-bit systems 2016-12-29 14:17:40 -05:00
en_cq.c net/mlx4_en: remove napi_hash_del() call 2016-11-17 11:17:05 -05:00
en_dcb_nl.c net/mlx4_en: Fixes for DCBX 2016-09-11 19:40:26 -07:00
en_ethtool.c net/mlx4_en: Remove unnecessary checks when setting num channels 2017-01-18 14:58:23 -05:00
en_main.c net/mlx4_en: Refactor the XDP forwarding rings scheme 2016-11-02 15:07:11 -04:00
en_netdev.c mlx4: do not call napi_schedule() without care 2017-01-16 11:44:10 -05:00
en_port.c mlx4: fix use-after-free in mlx4_en_fold_software_stats() 2016-12-02 13:33:32 -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: Avoid wrong virtual mappings 2016-05-05 23:23:05 -04:00
en_rx.c net/mlx4_en: Fix bad WQE issue 2016-12-29 14:17:40 -05:00
en_selftest.c mlx4: use reset to set mac header 2016-12-03 15:49:16 -05:00
en_tx.c mlx4: xdp: Reserve headroom for receiving packet when XDP prog is active 2016-12-08 14:25:13 -05:00
eq.c net/mlx4_core: Eliminate warning messages for SRQ_LIMIT under SRIOV 2017-01-16 15:08:29 -05:00
fw_qos.c net/mlx4: Add mlx4_SET_VPORT_QOS implementation 2015-04-02 16:25:02 -04:00
fw_qos.h net/mlx4: Added qos_vport QP configuration in VST mode 2015-04-02 16:25:03 -04:00
fw.c net/mlx4_core: Change the default value of enable_qos 2016-10-29 16:23:48 -04:00
fw.h mlx4: remove unused fields 2016-09-30 01:56:41 -04:00
icm.c net/mlx4: Remove BUG_ON from ICM allocation routine 2016-12-29 14:17:40 -05:00
icm.h
intf.c net/mlx4_core: Avoid command timeouts during VF driver device shutdown 2017-01-30 15:45:27 -05:00
Kconfig ptp_clock: Allow for it to be optional 2016-11-16 09:26:34 +01:00
main.c net/mlx4_core: Fix raw qp flow steering rules under SRIOV 2016-12-29 14:17:40 -05:00
Makefile net/mlx4: New file for QoS related firmware commands 2015-04-02 16:25:02 -04:00
mcg.c net/mlx4: Fix uninitialized fields in rule when adding promiscuous mode to device managed flow steering 2016-11-28 15:33:46 -05:00
mlx4_en.h mlx4: xdp: Reserve headroom for receiving packet when XDP prog is active 2016-12-08 14:25:13 -05:00
mlx4_stats.h net/mlx4_en: Add ethtool statistics for XDP cases 2016-11-02 15:07:11 -04:00
mlx4.h net/mlx4_core: Avoid command timeouts during VF driver device shutdown 2017-01-30 15:45:27 -05:00
mr.c net/mlx4: Fix some indent inconsistancy 2016-07-04 15:22:33 -07:00
pd.c io-mapping: Specify mapping size for io_mapping_map_wc() 2016-04-28 12:17:32 +01:00
port.c net/mlx4_en: Fix potential deadlock in port statistics flow 2016-10-29 16:23:48 -04:00
profile.c net/mlx4_core: use swap() in mlx4_make_profile() 2015-06-11 15:19:41 -07:00
qp.c net/mlx4_core: Add support for RoCE v2 entropy 2016-01-19 15:35:00 -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: Fix when to save some qp context flags for dynamic VST to VGT transitions 2017-01-16 15:08:28 -05:00
sense.c
srq.c net/mlx4_core: Use RCU to perform radix tree lookup for SRQ 2016-09-21 21:52:43 -04:00