linux/drivers/net/ethernet/intel/ice
Brett Creeley 72ecb896e4 ice: Use GLINT_DYN_CTL to disable VF's interrupts
Currently in ice_free_vf_res() we are writing to the VFINT_DYN_CTLN
register in the PF's function space to disable all VF's interrupts. This
is incorrect because this register is only for use in the VF's function
space. This becomes obvious when seeing that the valid indices used for
the VFINT_DYN_CTLN register is from 0-63, which is the maximum number of
interrupts for a VF (not including the OICR interrupt). Fix this by
writing to the GLINT_DYN_CTL register for each VF. We can do this
because we keep track of each VF's first_vector_idx inside of the PF's
function space and the number of interrupts given to each VF.

Also in ice_free_vfs() we were disabling Rx/Tx queues after calling
pci_disable_sriov(). One part of disabling the Tx queues causes the PF
driver to trigger a software interrupt, which causes the VF's napi
routine to run. This doesn't currently work because pci_disable_sriov()
causes iavf_remove() to be called which disables interrupts. Fix this by
disabling Rx/Tx queues prior to pci_disable_sriov().

Signed-off-by: Brett Creeley <brett.creeley@intel.com>
Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2019-05-29 22:49:06 -07:00
..
ice.h ice: Refactor interrupt tracking 2019-05-29 02:48:49 -07:00
ice_adminq_cmd.h ice: Add ice_get_fw_log_cfg to init FW logging 2019-05-29 02:57:27 -07:00
ice_common.c ice: Add ice_get_fw_log_cfg to init FW logging 2019-05-29 02:57:27 -07:00
ice_common.h ice: Add handler for ethtool selftest 2019-05-29 02:44:12 -07:00
ice_controlq.c ice: Fix incorrect use of abbreviations 2019-04-18 08:38:47 -07:00
ice_controlq.h ice: Use more efficient structures 2019-05-04 14:40:36 -07:00
ice_dcb.c ice: Refactor the LLDP MIB change event handling 2019-05-23 10:51:53 -07:00
ice_dcb.h ice: Refactor the LLDP MIB change event handling 2019-05-23 10:51:53 -07:00
ice_dcb_lib.c ice: Refactor the LLDP MIB change event handling 2019-05-23 10:51:53 -07:00
ice_dcb_lib.h ice: Fix hang when ethtool disables FW LLDP 2019-05-23 10:51:53 -07:00
ice_devids.h
ice_ethtool.c ice: Remove redundant and premature event config 2019-05-29 02:53:57 -07:00
ice_hw_autogen.h ice: Add handler for ethtool selftest 2019-05-29 02:44:12 -07:00
ice_lan_tx_rx.h ice: Fix incorrect use of abbreviations 2019-04-18 08:38:47 -07:00
ice_lib.c ice: Add a helper to trigger software interrupt 2019-05-29 03:00:53 -07:00
ice_lib.h ice: Add a helper to trigger software interrupt 2019-05-29 03:00:53 -07:00
ice_main.c ice: Add a helper to trigger software interrupt 2019-05-29 03:00:53 -07:00
ice_nvm.c ice: Add handler for ethtool selftest 2019-05-29 02:44:12 -07:00
ice_osdep.h
ice_sched.c ice: Create framework for VSI queue context 2019-05-02 00:57:44 -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_sriov.h
ice_status.h ice: Add handler for ethtool selftest 2019-05-29 02:44:12 -07:00
ice_switch.c ice: Silence semantic parser warnings 2019-05-23 10:51: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: Resolve static analysis warning 2019-05-29 02:36:58 -07:00
ice_txrx.h ice: Use bitfields when possible 2019-05-23 10:51:54 -07:00
ice_type.h ice: Add handler for ethtool selftest 2019-05-29 02:44:12 -07:00
ice_virtchnl_pf.c ice: Use GLINT_DYN_CTL to disable VF's interrupts 2019-05-29 22:49:06 -07:00
ice_virtchnl_pf.h ice: Refactor interrupt tracking 2019-05-29 02:48:49 -07:00
Makefile ice: Add code for DCB initialization part 1/4 2019-04-18 08:38:47 -07:00