Message ID | 20240201124714.3053525-1-alexious@zju.edu.cn (mailing list archive) |
---|---|
State | Accepted |
Commit | b09b58e31b0f43d76f79b9943da3fb7c2843dcbb |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | octeontx2-pf: Fix a memleak otx2_sq_init | expand |
Thu, Feb 01, 2024 at 01:47:13PM CET, alexious@zju.edu.cn wrote: >When qmem_alloc and pfvf->hw_ops->sq_aq_init fails, sq->sg should be >freed to prevent memleak. > >Fixes: c9c12d339d93 ("octeontx2-pf: Add support for PTP clock") >Signed-off-by: Zhipeng Lu <alexious@zju.edu.cn> Acked-by: Jiri Pirko <jiri@nvidia.com>
Looks good to me. Thanks, Sundeep >-----Original Message----- >From: Zhipeng Lu <alexious@zju.edu.cn> >Sent: Thursday, February 1, 2024 6:17 PM >To: alexious@zju.edu.cn >Cc: Sunil Kovvuri Goutham <sgoutham@marvell.com>; Geethasowjanya Akula ><gakula@marvell.com>; Subbaraya Sundeep Bhatta <sbhatta@marvell.com>; >Hariprasad Kelam <hkelam@marvell.com>; David S. Miller ><davem@davemloft.net>; Eric Dumazet <edumazet@google.com>; Jakub Kicinski ><kuba@kernel.org>; Paolo Abeni <pabeni@redhat.com>; Jesse Brandeburg ><jesse.brandeburg@intel.com>; Richard Cochran <richardcochran@gmail.com>; >netdev@vger.kernel.org; linux-kernel@vger.kernel.org >Subject: [EXT] [PATCH] octeontx2-pf: Fix a memleak otx2_sq_init > >External Email > >---------------------------------------------------------------------- >When qmem_alloc and pfvf->hw_ops->sq_aq_init fails, sq->sg should be freed to >prevent memleak. > >Fixes: c9c12d339d93 ("octeontx2-pf: Add support for PTP clock") >Signed-off-by: Zhipeng Lu <alexious@zju.edu.cn> >--- > .../ethernet/marvell/octeontx2/nic/otx2_common.c | 14 ++++++++++++-- > 1 file changed, 12 insertions(+), 2 deletions(-) > >diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c >b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c >index 7ca6941ea0b9..02d0b707aea5 100644 >--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c >+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c >@@ -951,8 +951,11 @@ int otx2_sq_init(struct otx2_nic *pfvf, u16 qidx, u16 >sqb_aura) > if (pfvf->ptp && qidx < pfvf->hw.tx_queues) { > err = qmem_alloc(pfvf->dev, &sq->timestamps, qset->sqe_cnt, > sizeof(*sq->timestamps)); >- if (err) >+ if (err) { >+ kfree(sq->sg); >+ sq->sg = NULL; > return err; >+ } > } > > sq->head = 0; >@@ -968,7 +971,14 @@ int otx2_sq_init(struct otx2_nic *pfvf, u16 qidx, u16 >sqb_aura) > sq->stats.bytes = 0; > sq->stats.pkts = 0; > >- return pfvf->hw_ops->sq_aq_init(pfvf, qidx, sqb_aura); >+ err = pfvf->hw_ops->sq_aq_init(pfvf, qidx, sqb_aura); >+ if (err) { >+ kfree(sq->sg); >+ sq->sg = NULL; >+ return err; >+ } >+ >+ return 0; > > } > >-- >2.34.1
Hello: This patch was applied to netdev/net.git (main) by David S. Miller <davem@davemloft.net>: On Thu, 1 Feb 2024 20:47:13 +0800 you wrote: > When qmem_alloc and pfvf->hw_ops->sq_aq_init fails, sq->sg should be > freed to prevent memleak. > > Fixes: c9c12d339d93 ("octeontx2-pf: Add support for PTP clock") > Signed-off-by: Zhipeng Lu <alexious@zju.edu.cn> > --- > .../ethernet/marvell/octeontx2/nic/otx2_common.c | 14 ++++++++++++-- > 1 file changed, 12 insertions(+), 2 deletions(-) Here is the summary with links: - octeontx2-pf: Fix a memleak otx2_sq_init https://git.kernel.org/netdev/net/c/b09b58e31b0f You are awesome, thank you!
diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c index 7ca6941ea0b9..02d0b707aea5 100644 --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c @@ -951,8 +951,11 @@ int otx2_sq_init(struct otx2_nic *pfvf, u16 qidx, u16 sqb_aura) if (pfvf->ptp && qidx < pfvf->hw.tx_queues) { err = qmem_alloc(pfvf->dev, &sq->timestamps, qset->sqe_cnt, sizeof(*sq->timestamps)); - if (err) + if (err) { + kfree(sq->sg); + sq->sg = NULL; return err; + } } sq->head = 0; @@ -968,7 +971,14 @@ int otx2_sq_init(struct otx2_nic *pfvf, u16 qidx, u16 sqb_aura) sq->stats.bytes = 0; sq->stats.pkts = 0; - return pfvf->hw_ops->sq_aq_init(pfvf, qidx, sqb_aura); + err = pfvf->hw_ops->sq_aq_init(pfvf, qidx, sqb_aura); + if (err) { + kfree(sq->sg); + sq->sg = NULL; + return err; + } + + return 0; }
When qmem_alloc and pfvf->hw_ops->sq_aq_init fails, sq->sg should be freed to prevent memleak. Fixes: c9c12d339d93 ("octeontx2-pf: Add support for PTP clock") Signed-off-by: Zhipeng Lu <alexious@zju.edu.cn> --- .../ethernet/marvell/octeontx2/nic/otx2_common.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-)