aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/intel/ixgbe/ixgbe_main.c')
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_main.c16
1 files changed, 2 insertions, 14 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 22a29df1d29e..d39cba214320 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -7332,18 +7332,6 @@ static void ixgbe_watchdog_flush_tx(struct ixgbe_adapter *adapter)
7332} 7332}
7333 7333
7334#ifdef CONFIG_PCI_IOV 7334#ifdef CONFIG_PCI_IOV
7335static inline void ixgbe_issue_vf_flr(struct ixgbe_adapter *adapter,
7336 struct pci_dev *vfdev)
7337{
7338 if (!pci_wait_for_pending_transaction(vfdev))
7339 e_dev_warn("Issuing VFLR with pending transactions\n");
7340
7341 e_dev_err("Issuing VFLR for VF %s\n", pci_name(vfdev));
7342 pcie_capability_set_word(vfdev, PCI_EXP_DEVCTL, PCI_EXP_DEVCTL_BCR_FLR);
7343
7344 msleep(100);
7345}
7346
7347static void ixgbe_check_for_bad_vf(struct ixgbe_adapter *adapter) 7335static void ixgbe_check_for_bad_vf(struct ixgbe_adapter *adapter)
7348{ 7336{
7349 struct ixgbe_hw *hw = &adapter->hw; 7337 struct ixgbe_hw *hw = &adapter->hw;
@@ -7376,7 +7364,7 @@ static void ixgbe_check_for_bad_vf(struct ixgbe_adapter *adapter)
7376 pci_read_config_word(vfdev, PCI_STATUS, &status_reg); 7364 pci_read_config_word(vfdev, PCI_STATUS, &status_reg);
7377 if (status_reg != IXGBE_FAILED_READ_CFG_WORD && 7365 if (status_reg != IXGBE_FAILED_READ_CFG_WORD &&
7378 status_reg & PCI_STATUS_REC_MASTER_ABORT) 7366 status_reg & PCI_STATUS_REC_MASTER_ABORT)
7379 ixgbe_issue_vf_flr(adapter, vfdev); 7367 pcie_flr(vfdev);
7380 } 7368 }
7381} 7369}
7382 7370
@@ -10602,7 +10590,7 @@ static pci_ers_result_t ixgbe_io_error_detected(struct pci_dev *pdev,
10602 * VFLR. Just clean up the AER in that case. 10590 * VFLR. Just clean up the AER in that case.
10603 */ 10591 */
10604 if (vfdev) { 10592 if (vfdev) {
10605 ixgbe_issue_vf_flr(adapter, vfdev); 10593 pcie_flr(vfdev);
10606 /* Free device reference count */ 10594 /* Free device reference count */
10607 pci_dev_put(vfdev); 10595 pci_dev_put(vfdev);
10608 } 10596 }