Message ID | 20180920004308.13772-16-anirudh.venkataramanan@intel.com |
---|---|
State | Accepted |
Delegated to: | Jeff Kirsher |
Headers | show |
Series | Add SR-IOV support, feature updates | expand |
> -----Original Message----- > From: Intel-wired-lan [mailto:intel-wired-lan-bounces@osuosl.org] On > Behalf Of Anirudh Venkataramanan > Sent: Wednesday, September 19, 2018 5:43 PM > To: intel-wired-lan@lists.osuosl.org > Subject: [Intel-wired-lan] [PATCH v2 15/16] ice: Fix error on driver remove > > From: Dave Ertman <david.m.ertman@intel.com> > > 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 <david.m.ertman@intel.com> > Signed-off-by: Anirudh Venkataramanan > <anirudh.venkataramanan@intel.com> > --- > [Anirudh Venkataramanan <anirudh.venkataramanan@intel.com> rewrote > commit message] > --- > drivers/net/ethernet/intel/ice/ice_main.c | 6 ++++++ > 1 file changed, 6 insertions(+) Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c index ecd9cbc457d1..959506ce597d 100644 --- a/drivers/net/ethernet/intel/ice/ice_main.c +++ b/drivers/net/ethernet/intel/ice/ice_main.c @@ -2239,6 +2239,7 @@ static int ice_probe(struct pci_dev *pdev, static void ice_remove(struct pci_dev *pdev) { struct ice_pf *pf = pci_get_drvdata(pdev); + int i; if (!pf) return; @@ -2250,6 +2251,11 @@ static void ice_remove(struct pci_dev *pdev) ice_free_vfs(pf); 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);