aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/qlogic
diff options
context:
space:
mode:
authorJitendra Kalsaria <jitendra.kalsaria@qlogic.com>2013-02-09 04:29:49 -0500
committerDavid S. Miller <davem@davemloft.net>2013-02-11 02:04:13 -0500
commit3d73b5fda45a4288856020527f1dbf4efd8c9a7a (patch)
tree061f8c7574ceb3ef7cf0e65272919059f9192293 /drivers/net/ethernet/qlogic
parentd5fcff04fca9287af3764fb6d32378504ea18582 (diff)
qlcnic: fix firmware based IDC participation
Driver needs to stop participating in firmware based Inter Driver Communication (IDC) while unloading driver Signed-off-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/qlogic')
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
index 714124abf69a..dcb990d3d559 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
@@ -2023,6 +2023,8 @@ static void qlcnic_remove(struct pci_dev *pdev)
2023 if (adapter->flags & QLCNIC_MSIX_ENABLED) 2023 if (adapter->flags & QLCNIC_MSIX_ENABLED)
2024 qlcnic_83xx_config_intrpt(adapter, 0); 2024 qlcnic_83xx_config_intrpt(adapter, 0);
2025 qlcnic_83xx_free_mbx_intr(adapter); 2025 qlcnic_83xx_free_mbx_intr(adapter);
2026 qlcnic_83xx_register_nic_idc_func(adapter, 0);
2027 cancel_delayed_work_sync(&adapter->idc_aen_work);
2026 } 2028 }
2027 2029
2028 qlcnic_detach(adapter); 2030 qlcnic_detach(adapter);
@@ -2180,10 +2182,6 @@ static int qlcnic_close(struct net_device *netdev)
2180 struct qlcnic_adapter *adapter = netdev_priv(netdev); 2182 struct qlcnic_adapter *adapter = netdev_priv(netdev);
2181 2183
2182 __qlcnic_down(adapter, netdev); 2184 __qlcnic_down(adapter, netdev);
2183 if (qlcnic_83xx_check(adapter)) {
2184 qlcnic_83xx_register_nic_idc_func(adapter, 0);
2185 cancel_delayed_work_sync(&adapter->idc_aen_work);
2186 }
2187 2185
2188 return 0; 2186 return 0;
2189} 2187}
@@ -3117,6 +3115,8 @@ static pci_ers_result_t qlcnic_io_error_detected(struct pci_dev *pdev,
3117 if (adapter->flags & QLCNIC_MSIX_ENABLED) 3115 if (adapter->flags & QLCNIC_MSIX_ENABLED)
3118 qlcnic_83xx_config_intrpt(adapter, 0); 3116 qlcnic_83xx_config_intrpt(adapter, 0);
3119 qlcnic_83xx_free_mbx_intr(adapter); 3117 qlcnic_83xx_free_mbx_intr(adapter);
3118 qlcnic_83xx_register_nic_idc_func(adapter, 0);
3119 cancel_delayed_work_sync(&adapter->idc_aen_work);
3120 } 3120 }
3121 3121
3122 qlcnic_detach(adapter); 3122 qlcnic_detach(adapter);