* [PATCH net] intel/igbvf: free irq on the error path in igbvf_request_msix()
@ 2022-11-20 6:17 Gaosheng Cui
2022-11-21 18:05 ` Maciej Fijalkowski
0 siblings, 1 reply; 3+ messages in thread
From: Gaosheng Cui @ 2022-11-20 6:17 UTC (permalink / raw)
To: jesse.brandeburg, anthony.l.nguyen, davem, edumazet, kuba, pabeni,
jeffrey.t.kirsher, alexander.h.duyck, cuigaosheng1
Cc: intel-wired-lan, netdev
In igbvf_request_msix(), irqs have not been freed on the err path,
we need to free it. Fix it.
Fixes: d4e0fe01a38a ("igbvf: add new driver to support 82576 virtual functions")
Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com>
---
drivers/net/ethernet/intel/igbvf/netdev.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/igbvf/netdev.c b/drivers/net/ethernet/intel/igbvf/netdev.c
index 3a32809510fc..e212ca16df00 100644
--- a/drivers/net/ethernet/intel/igbvf/netdev.c
+++ b/drivers/net/ethernet/intel/igbvf/netdev.c
@@ -1074,7 +1074,7 @@ static int igbvf_request_msix(struct igbvf_adapter *adapter)
igbvf_intr_msix_rx, 0, adapter->rx_ring->name,
netdev);
if (err)
- goto out;
+ goto free_irq1;
adapter->rx_ring->itr_register = E1000_EITR(vector);
adapter->rx_ring->itr_val = adapter->current_itr;
@@ -1083,10 +1083,14 @@ static int igbvf_request_msix(struct igbvf_adapter *adapter)
err = request_irq(adapter->msix_entries[vector].vector,
igbvf_msix_other, 0, netdev->name, netdev);
if (err)
- goto out;
+ goto free_irq2;
igbvf_configure_msix(adapter);
return 0;
+free_irq2:
+ free_irq(adapter->msix_entries[--vector].vector, netdev);
+free_irq1:
+ free_irq(adapter->msix_entries[--vector].vector, netdev);
out:
return err;
}
--
2.25.1
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH net] intel/igbvf: free irq on the error path in igbvf_request_msix() 2022-11-20 6:17 [PATCH net] intel/igbvf: free irq on the error path in igbvf_request_msix() Gaosheng Cui @ 2022-11-21 18:05 ` Maciej Fijalkowski 2022-11-22 2:55 ` cuigaosheng 0 siblings, 1 reply; 3+ messages in thread From: Maciej Fijalkowski @ 2022-11-21 18:05 UTC (permalink / raw) To: Gaosheng Cui Cc: Brandeburg, Jesse, Nguyen, Anthony L, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, jeffrey.t.kirsher@intel.com, alexander.h.duyck@intel.com, intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org On Sun, Nov 20, 2022 at 07:17:57AM +0100, Gaosheng Cui wrote: > In igbvf_request_msix(), irqs have not been freed on the err path, > we need to free it. Fix it. > > Fixes: d4e0fe01a38a ("igbvf: add new driver to support 82576 virtual functions") > Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com> Hi, > --- > drivers/net/ethernet/intel/igbvf/netdev.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/ethernet/intel/igbvf/netdev.c b/drivers/net/ethernet/intel/igbvf/netdev.c > index 3a32809510fc..e212ca16df00 100644 > --- a/drivers/net/ethernet/intel/igbvf/netdev.c > +++ b/drivers/net/ethernet/intel/igbvf/netdev.c > @@ -1074,7 +1074,7 @@ static int igbvf_request_msix(struct igbvf_adapter *adapter) > igbvf_intr_msix_rx, 0, adapter->rx_ring->name, > netdev); > if (err) > - goto out; > + goto free_irq1; s/free_irq1/free_irq_tx ? > > adapter->rx_ring->itr_register = E1000_EITR(vector); > adapter->rx_ring->itr_val = adapter->current_itr; > @@ -1083,10 +1083,14 @@ static int igbvf_request_msix(struct igbvf_adapter *adapter) > err = request_irq(adapter->msix_entries[vector].vector, > igbvf_msix_other, 0, netdev->name, netdev); > if (err) > - goto out; > + goto free_irq2; s/free_irq2/free_irq_rx ? > > igbvf_configure_msix(adapter); > return 0; > +free_irq2: > + free_irq(adapter->msix_entries[--vector].vector, netdev); > +free_irq1: > + free_irq(adapter->msix_entries[--vector].vector, netdev); > out: > return err; Besides above suggestions, change LGTM. Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com> > } > -- > 2.25.1 > ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH net] intel/igbvf: free irq on the error path in igbvf_request_msix() 2022-11-21 18:05 ` Maciej Fijalkowski @ 2022-11-22 2:55 ` cuigaosheng 0 siblings, 0 replies; 3+ messages in thread From: cuigaosheng @ 2022-11-22 2:55 UTC (permalink / raw) To: Maciej Fijalkowski Cc: Brandeburg, Jesse, Nguyen, Anthony L, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, jeffrey.t.kirsher@intel.com, alexander.h.duyck@intel.com, intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org > s/free_irq1/free_irq_tx ? > >> >> adapter->rx_ring->itr_register = E1000_EITR(vector); >> adapter->rx_ring->itr_val = adapter->current_itr; >> @@ -1083,10 +1083,14 @@ static int igbvf_request_msix(struct igbvf_adapter *adapter) >> err = request_irq(adapter->msix_entries[vector].vector, >> igbvf_msix_other, 0, netdev->name, netdev); >> if (err) >> - goto out; >> + goto free_irq2; > s/free_irq2/free_irq_rx ? > Thanks for taking time to review this patch, I have made a patch v2 and submit it. link: https://patchwork.kernel.org/project/netdevbpf/patch/20221122022852.1384927-1-cuigaosheng1@huawei.com/ On 2022/11/22 2:05, Maciej Fijalkowski wrote: > On Sun, Nov 20, 2022 at 07:17:57AM +0100, Gaosheng Cui wrote: >> In igbvf_request_msix(), irqs have not been freed on the err path, >> we need to free it. Fix it. >> >> Fixes: d4e0fe01a38a ("igbvf: add new driver to support 82576 virtual functions") >> Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com> > Hi, > >> --- >> drivers/net/ethernet/intel/igbvf/netdev.c | 8 ++++++-- >> 1 file changed, 6 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/net/ethernet/intel/igbvf/netdev.c b/drivers/net/ethernet/intel/igbvf/netdev.c >> index 3a32809510fc..e212ca16df00 100644 >> --- a/drivers/net/ethernet/intel/igbvf/netdev.c >> +++ b/drivers/net/ethernet/intel/igbvf/netdev.c >> @@ -1074,7 +1074,7 @@ static int igbvf_request_msix(struct igbvf_adapter *adapter) >> igbvf_intr_msix_rx, 0, adapter->rx_ring->name, >> netdev); >> if (err) >> - goto out; >> + goto free_irq1; > s/free_irq1/free_irq_tx ? > >> >> adapter->rx_ring->itr_register = E1000_EITR(vector); >> adapter->rx_ring->itr_val = adapter->current_itr; >> @@ -1083,10 +1083,14 @@ static int igbvf_request_msix(struct igbvf_adapter *adapter) >> err = request_irq(adapter->msix_entries[vector].vector, >> igbvf_msix_other, 0, netdev->name, netdev); >> if (err) >> - goto out; >> + goto free_irq2; > s/free_irq2/free_irq_rx ? > >> >> igbvf_configure_msix(adapter); >> return 0; >> +free_irq2: >> + free_irq(adapter->msix_entries[--vector].vector, netdev); >> +free_irq1: >> + free_irq(adapter->msix_entries[--vector].vector, netdev); >> out: >> return err; > Besides above suggestions, change LGTM. > > Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com> > >> } >> -- >> 2.25.1 >> > . ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-11-22 2:55 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-11-20 6:17 [PATCH net] intel/igbvf: free irq on the error path in igbvf_request_msix() Gaosheng Cui 2022-11-21 18:05 ` Maciej Fijalkowski 2022-11-22 2:55 ` cuigaosheng
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).