diff options
| author | Dave Ertman <[email protected]> | 2018-09-20 00:43:07 +0000 |
|---|---|---|
| committer | Jeff Kirsher <[email protected]> | 2018-10-02 14:20:31 +0000 |
| commit | 81b23589f4830b672ffbad7162fc838c6791d22a (patch) | |
| tree | 33b29609b47911b2077b25077a33d03d0fa7a8a6 /drivers/net/ethernet/intel/ice/ice_main.c | |
| parent | ice: Add support for dynamic interrupt moderation (diff) | |
| download | kernel-81b23589f4830b672ffbad7162fc838c6791d22a.tar.gz kernel-81b23589f4830b672ffbad7162fc838c6791d22a.zip | |
ice: Fix error on driver remove
If the driver is unloaded when traffic is in progress, errors are
generated. Fix this by releasing qvectors and NAPI handler on remove.
Signed-off-by: Dave Ertman <[email protected]>
Signed-off-by: Anirudh Venkataramanan <[email protected]>
Tested-by: Andrew Bowers <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
Diffstat (limited to 'drivers/net/ethernet/intel/ice/ice_main.c')
| -rw-r--r-- | drivers/net/ethernet/intel/ice/ice_main.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c index 9638684f75ac..46ccf265c218 100644 --- a/drivers/net/ethernet/intel/ice/ice_main.c +++ b/drivers/net/ethernet/intel/ice/ice_main.c @@ -2130,6 +2130,7 @@ err_exit_unroll: static void ice_remove(struct pci_dev *pdev) { struct ice_pf *pf = pci_get_drvdata(pdev); + int i; if (!pf) return; @@ -2139,6 +2140,11 @@ static void ice_remove(struct pci_dev *pdev) ice_vsi_release_all(pf); ice_free_irq_msix_misc(pf); + ice_for_each_vsi(pf, i) { + if (!pf->vsi[i]) + continue; + ice_vsi_free_q_vectors(pf->vsi[i]); + } ice_clear_interrupt_scheme(pf); ice_deinit_pf(pf); ice_deinit_hw(&pf->hw); |
