linux/drivers/net/ethernet/intel/ice
Mitch Williams 29d42f1f3a ice: Reliably reset VFs
When a PFR (or bigger reset) occurs, the device clears the VF_MBX_ARQLEN
register for all VFs. But if a VFR is triggered by a VF, the device does
NOT clear this register, and the VF driver will never see the reset.

When this happens, the VF driver will eventually timeout and attempt
recovery, and usually it will be successful. But this makes resets take
a long time and there are occasional failures.

We cannot just blithely clear this register on every reset; this has
been shown to cause synchronization problems when a PFR is triggered
with a large number of VFs.

Fix this by clearing VF_MBX_ARQLEN when the reset source is not PFR.
GlobR will trigger PFR, so this test catches that occurrence as well.

Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2019-09-05 08:13:40 -07:00
..
ice_adminq_cmd.h ice: Limit Max TCs on devices with more than 4 ports 2019-09-03 16:35:58 -07:00
ice_common.c ice: Limit Max TCs on devices with more than 4 ports 2019-09-03 16:35:58 -07:00
ice_common.h ice: separate out control queue lock creation 2019-07-31 10:23:04 -07:00
ice_controlq.c ice: separate out control queue lock creation 2019-07-31 10:23:04 -07:00
ice_controlq.h ice: Trivial cosmetic changes 2019-05-30 10:57:55 -07:00
ice_dcb_lib.c ice: Remove enable DCB when SW LLDP is activated 2019-09-03 17:14:37 -07:00
ice_dcb_lib.h ice: Fix hang when ethtool disables FW LLDP 2019-05-23 10:51:53 -07:00
ice_dcb.c ice: Deduce TSA value from the priority value in the CEE mode 2019-09-03 16:16:36 -07:00
ice_dcb.h ice: Refactor the LLDP MIB change event handling 2019-05-23 10:51:53 -07:00
ice_devids.h ice: Change device ID define names to align with branding string 2018-10-24 13:53:30 -07:00
ice_ethtool.c ice: change work limit to a constant 2019-09-05 08:13:40 -07:00
ice_hw_autogen.h ice: Set WB_ON_ITR when we don't re-enable interrupts 2019-08-20 14:21:21 -07:00
ice_lan_tx_rx.h ice: Always set prefena when configuring an Rx queue 2019-07-31 10:23:04 -07:00
ice_lib.c ice: change work limit to a constant 2019-09-05 08:13:40 -07:00
ice_lib.h ice: add support for virtchnl_queue_select.[tx|rx]_queues bitmap 2019-08-26 23:37:16 -07:00
ice_main.c ice: Add ice_get_main_vsi to get PF/main VSI 2019-09-05 08:13:40 -07:00
ice_nvm.c ice: Add handler for ethtool selftest 2019-05-29 02:44:12 -07:00
ice_osdep.h ice: Start hardware initialization 2018-03-26 09:59:08 -07:00
ice_sched.c ice: Check root pointer for validity 2019-09-05 08:13:40 -07:00
ice_sched.h ice: Add code for DCB initialization part 3/4 2019-04-18 08:38:47 -07:00
ice_sriov.c ice: Add support for new PHY types 2019-01-15 12:38:44 -08:00
ice_sriov.h ice: Add handlers for VF netdevice operations 2018-10-03 07:42:30 -07:00
ice_status.h ice: Add handler for ethtool selftest 2019-05-29 02:44:12 -07:00
ice_switch.c ice: Fix resource leak in ice_remove_rule_internal() 2019-09-03 16:08:54 -07:00
ice_switch.h ice: Minor cleanup in ice_switch.h 2019-05-29 02:55:34 -07:00
ice_txrx.c ice: small efficiency fixes 2019-09-05 08:13:40 -07:00
ice_txrx.h ice: Set WB_ON_ITR when we don't re-enable interrupts 2019-08-20 14:21:21 -07:00
ice_type.h ice: Limit Max TCs on devices with more than 4 ports 2019-09-03 16:35:58 -07:00
ice_virtchnl_pf.c ice: Reliably reset VFs 2019-09-05 08:13:40 -07:00
ice_virtchnl_pf.h ice: add support for virtchnl_queue_select.[tx|rx]_queues bitmap 2019-08-26 23:37:16 -07:00
ice.h ice: change work limit to a constant 2019-09-05 08:13:40 -07:00
Makefile ice: Add code for DCB initialization part 1/4 2019-04-18 08:38:47 -07:00