diff options
author | Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> | 2013-02-09 09:29:49 (GMT) |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-02-11 07:04:13 (GMT) |
commit | 3d73b5fda45a4288856020527f1dbf4efd8c9a7a (patch) | |
tree | 061f8c7574ceb3ef7cf0e65272919059f9192293 /drivers/net/ethernet | |
parent | d5fcff04fca9287af3764fb6d32378504ea18582 (diff) | |
download | linux-fsl-qoriq-3d73b5fda45a4288856020527f1dbf4efd8c9a7a.tar.xz |
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')
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 8 |
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 714124a..dcb990d 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) if (adapter->flags & QLCNIC_MSIX_ENABLED) qlcnic_83xx_config_intrpt(adapter, 0); qlcnic_83xx_free_mbx_intr(adapter); + qlcnic_83xx_register_nic_idc_func(adapter, 0); + cancel_delayed_work_sync(&adapter->idc_aen_work); } qlcnic_detach(adapter); @@ -2180,10 +2182,6 @@ static int qlcnic_close(struct net_device *netdev) struct qlcnic_adapter *adapter = netdev_priv(netdev); __qlcnic_down(adapter, netdev); - if (qlcnic_83xx_check(adapter)) { - qlcnic_83xx_register_nic_idc_func(adapter, 0); - cancel_delayed_work_sync(&adapter->idc_aen_work); - } return 0; } @@ -3117,6 +3115,8 @@ static pci_ers_result_t qlcnic_io_error_detected(struct pci_dev *pdev, if (adapter->flags & QLCNIC_MSIX_ENABLED) qlcnic_83xx_config_intrpt(adapter, 0); qlcnic_83xx_free_mbx_intr(adapter); + qlcnic_83xx_register_nic_idc_func(adapter, 0); + cancel_delayed_work_sync(&adapter->idc_aen_work); } qlcnic_detach(adapter); |