linux_dsm_epyc7002/drivers/net/ethernet/intel/ice
Brett Creeley 4dc926d3a5 ice: Fix Tx timeout when link is toggled on a VF's interface
Currently if the iavf is loaded and a VF link transitions from up to
down to up again a Tx timeout will be triggered. This happens because
Tx/Rx queue interrupts are only enabled when receiving the
VIRTCHNL_OP_CONFIG_MAP_IRQ message, which happens on reset or initial
iavf driver load, but not when bringing link up. This is problematic
because they are disabled on the VIRTCHNL_OP_DISABLE_QUEUES message,
which is part of bringing a VF's link down. However, they are not
enabled on the VIRTCHNL_OP_ENABLE_QUEUES message, which is part of
bringing a VF's link up.

Fix this by re-enabling the VF's Rx and Tx queue interrupts when they
were previously configured. This is done by first checking to make
sure the previous value in QINT_[R|T]QCTL.MSIX_INDX is not 0, which
is used to represent the OICR in the VF's interrupt space. If the
MSIX_INDX is non-zero then enable the interrupt by setting the
QINT_[R|T]CTL.CAUSE_ENA bit to 1.

Signed-off-by: Brett Creeley <brett.creeley@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2020-05-22 22:10:58 -07:00
..
ice_adminq_cmd.h ice: Call ice_aq_set_mac_cfg 2020-05-22 22:05:25 -07:00
ice_arfs.c ice: Implement aRFS 2020-05-22 22:02:34 -07:00
ice_arfs.h ice: Implement aRFS 2020-05-22 22:02:34 -07:00
ice_base.c ice: Initialize Flow Director resources 2020-05-22 21:26:37 -07:00
ice_base.h ice: Add support to enable/disable all Rx queues before waiting 2020-02-15 16:39:55 -08:00
ice_common.c ice: Call ice_aq_set_mac_cfg 2020-05-22 22:05:25 -07:00
ice_common.h ice: Call ice_aq_set_mac_cfg 2020-05-22 22:05:25 -07:00
ice_controlq.c ice: Fix casting issues 2020-05-21 22:10:04 -07:00
ice_controlq.h
ice_dcb_lib.c ice: Fix check for contiguous TCs 2020-05-21 22:10:04 -07:00
ice_dcb_lib.h ice: Don't reset and rebuild for Tx timeout on PFC enabled queue 2020-05-21 22:10:03 -07:00
ice_dcb_nl.c ice: SW DCB, report correct max TC value 2020-02-19 13:09:20 -08:00
ice_dcb_nl.h
ice_dcb.c ice: Trivial fixes 2020-02-12 11:49:12 -08:00
ice_dcb.h
ice_devids.h ice: fix define for E822 backplane device 2020-02-19 13:39:33 -08:00
ice_devlink.c ice: report netlist version in .info_get 2020-05-21 22:10:03 -07:00
ice_devlink.h ice: add a devlink region for dumping NVM contents 2020-03-26 19:39:26 -07:00
ice_ethtool_fdir.c ice: Implement aRFS 2020-05-22 22:02:34 -07:00
ice_ethtool.c ice: Support IPv4 Flow Director filters 2020-05-22 21:36:27 -07:00
ice_fdir.c ice: Enable flex-bytes support 2020-05-22 21:44:48 -07:00
ice_fdir.h ice: Enable flex-bytes support 2020-05-22 21:44:48 -07:00
ice_flex_pipe.c ice: Support IPv6 Flow Director filters 2020-05-22 21:42:20 -07:00
ice_flex_pipe.h ice: Support IPv4 Flow Director filters 2020-05-22 21:36:27 -07:00
ice_flex_type.h ice: Add support for tunnel offloads 2020-05-21 22:10:03 -07:00
ice_flow.c ice: Enable flex-bytes support 2020-05-22 21:44:48 -07:00
ice_flow.h ice: Enable flex-bytes support 2020-05-22 21:44:48 -07:00
ice_fltr.c ice: refactor filter functions 2020-05-21 22:10:04 -07:00
ice_fltr.h ice: refactor filter functions 2020-05-21 22:10:04 -07:00
ice_hw_autogen.h ice: Call ice_aq_set_mac_cfg 2020-05-22 22:05:25 -07:00
ice_lan_tx_rx.h ice: Support IPv4 Flow Director filters 2020-05-22 21:36:27 -07:00
ice_lib.c ice: Implement aRFS 2020-05-22 22:02:34 -07:00
ice_lib.h ice: Initialize Flow Director resources 2020-05-22 21:26:37 -07:00
ice_main.c ice: print Rx MDD auto reset message before VF reset 2020-05-22 22:07:06 -07:00
ice_nvm.c ice: report netlist version in .info_get 2020-05-21 22:10:03 -07:00
ice_nvm.h ice: add board identifier info to devlink .info_get 2020-03-21 01:02:19 -07:00
ice_osdep.h
ice_protocol_type.h ice: Enable flex-bytes support 2020-05-22 21:44:48 -07:00
ice_sched.c ice: Fix casting issues 2020-05-21 22:10:04 -07:00
ice_sched.h
ice_sriov.c ice: remove unnecessary fallthrough comments 2020-02-15 16:56:48 -08:00
ice_sriov.h
ice_status.h ice: Populate TCAM filter software structures 2020-01-25 21:34:36 -08:00
ice_switch.c ice: Initialize Flow Director resources 2020-05-22 21:26:37 -07:00
ice_switch.h ice: Initialize Flow Director resources 2020-05-22 21:26:37 -07:00
ice_txrx_lib.c ice: Rename build_ctob to ice_build_ctob 2020-05-21 22:10:04 -07:00
ice_txrx_lib.h ice: Rename build_ctob to ice_build_ctob 2020-05-21 22:10:04 -07:00
ice_txrx.c ice: Support IPv4 Flow Director filters 2020-05-22 21:36:27 -07:00
ice_txrx.h ice: Support IPv4 Flow Director filters 2020-05-22 21:36:27 -07:00
ice_type.h ice: Support IPv6 Flow Director filters 2020-05-22 21:42:20 -07:00
ice_virtchnl_pf.c ice: Fix Tx timeout when link is toggled on a VF's interface 2020-05-22 22:10:58 -07:00
ice_virtchnl_pf.h ice: print Rx MDD auto reset message before VF reset 2020-05-22 22:07:06 -07:00
ice_xsk.c ice: Rename build_ctob to ice_build_ctob 2020-05-21 22:10:04 -07:00
ice_xsk.h ice: Use EOPNOTSUPP instead of ENOTSUPP 2020-03-10 13:10:53 -07:00
ice.h ice: Implement aRFS 2020-05-22 22:02:34 -07:00
Makefile ice: Implement aRFS 2020-05-22 22:02:34 -07:00