* [Intel-wired-lan] [PATCH iwl-net v1 0/2] iavf: fix two memory leaks @ 2026-07-15 6:11 xuanqiang.luo 2026-07-15 6:11 ` [Intel-wired-lan] [PATCH iwl-net v1 1/2] iavf: fix ASQ command buffer leak on init failure xuanqiang.luo 2026-07-15 6:11 ` [Intel-wired-lan] [PATCH iwl-net v1 2/2] iavf: fix QoS capabilities memory leak xuanqiang.luo 0 siblings, 2 replies; 6+ messages in thread From: xuanqiang.luo @ 2026-07-15 6:11 UTC (permalink / raw) To: Tony Nguyen, Przemek Kitszel, intel-wired-lan Cc: Andrew Lunn, Mitch Williams, Greg Rose, Sudheer Mogilappagari, netdev, Xuanqiang Luo From: Xuanqiang Luo <luoxuanqiang@kylinos.cn> This series fixes two memory leaks found by inspection in iavf. Release the ASQ command buffer when initialization fails and the QoS capabilities buffer when the device is removed. Xuanqiang Luo (2): iavf: fix ASQ command buffer leak on init failure iavf: fix QoS capabilities memory leak drivers/net/ethernet/intel/iavf/iavf_adminq.c | 1 + drivers/net/ethernet/intel/iavf/iavf_main.c | 1 + 2 files changed, 2 insertions(+) base-commit: 58717b2a1365d06c8c64b72aa948541b53fe31eb -- 2.43.0 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Intel-wired-lan] [PATCH iwl-net v1 1/2] iavf: fix ASQ command buffer leak on init failure 2026-07-15 6:11 [Intel-wired-lan] [PATCH iwl-net v1 0/2] iavf: fix two memory leaks xuanqiang.luo @ 2026-07-15 6:11 ` xuanqiang.luo 2026-07-15 7:24 ` Jagielski, Jedrzej 2026-07-15 6:11 ` [Intel-wired-lan] [PATCH iwl-net v1 2/2] iavf: fix QoS capabilities memory leak xuanqiang.luo 1 sibling, 1 reply; 6+ messages in thread From: xuanqiang.luo @ 2026-07-15 6:11 UTC (permalink / raw) To: Tony Nguyen, Przemek Kitszel, intel-wired-lan Cc: Andrew Lunn, Mitch Williams, Greg Rose, Sudheer Mogilappagari, netdev, Xuanqiang Luo, stable From: Xuanqiang Luo <luoxuanqiang@kylinos.cn> iavf_alloc_adminq_asq_ring() allocates cmd_buf before the remaining ASQ resources. If iavf_alloc_asq_bufs() or iavf_config_asq_regs() fails, the unwind path elides cmd_buf while freeing the other allocations. The ASQ count is not set until initialization succeeds, so the shutdown path cannot reclaim the buffer. Free cmd_buf in the common unwind path. Fixes: d358aa9a7a2d ("i40evf: init code and hardware support") Cc: stable@vger.kernel.org Signed-off-by: Xuanqiang Luo <luoxuanqiang@kylinos.cn> --- drivers/net/ethernet/intel/iavf/iavf_adminq.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ethernet/intel/iavf/iavf_adminq.c b/drivers/net/ethernet/intel/iavf/iavf_adminq.c index 6937b7dd44cbb..82a32f8e78c12 100644 --- a/drivers/net/ethernet/intel/iavf/iavf_adminq.c +++ b/drivers/net/ethernet/intel/iavf/iavf_adminq.c @@ -346,6 +346,7 @@ static enum iavf_status iavf_init_asq(struct iavf_hw *hw) iavf_free_virt_mem(hw, &hw->aq.asq.dma_head); init_adminq_free_rings: + iavf_free_virt_mem(hw, &hw->aq.asq.cmd_buf); iavf_free_adminq_asq(hw); init_adminq_exit: -- 2.43.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Intel-wired-lan] [PATCH iwl-net v1 1/2] iavf: fix ASQ command buffer leak on init failure 2026-07-15 6:11 ` [Intel-wired-lan] [PATCH iwl-net v1 1/2] iavf: fix ASQ command buffer leak on init failure xuanqiang.luo @ 2026-07-15 7:24 ` Jagielski, Jedrzej 2026-07-15 8:30 ` luoxuanqiang 0 siblings, 1 reply; 6+ messages in thread From: Jagielski, Jedrzej @ 2026-07-15 7:24 UTC (permalink / raw) To: xuanqiang.luo@linux.dev, Nguyen, Anthony L, Kitszel, Przemyslaw, intel-wired-lan@lists.osuosl.org Cc: Andrew Lunn, Mitch Williams, Greg Rose, Sudheer Mogilappagari, netdev@vger.kernel.org, Xuanqiang Luo, stable@vger.kernel.org From: xuanqiang.luo@linux.dev <xuanqiang.luo@linux.dev> Sent: Wednesday, July 15, 2026 8:12 AM >From: Xuanqiang Luo <luoxuanqiang@kylinos.cn> > >iavf_alloc_adminq_asq_ring() allocates cmd_buf before the remaining ASQ >resources. If iavf_alloc_asq_bufs() or iavf_config_asq_regs() fails, the >unwind path elides cmd_buf while freeing the other allocations. > >The ASQ count is not set until initialization succeeds, so the shutdown >path cannot reclaim the buffer. Free cmd_buf in the common unwind path. > >Fixes: d358aa9a7a2d ("i40evf: init code and hardware support") >Cc: stable@vger.kernel.org >Signed-off-by: Xuanqiang Luo <luoxuanqiang@kylinos.cn> >--- > drivers/net/ethernet/intel/iavf/iavf_adminq.c | 1 + > 1 file changed, 1 insertion(+) > >diff --git a/drivers/net/ethernet/intel/iavf/iavf_adminq.c b/drivers/net/ethernet/intel/iavf/iavf_adminq.c >index 6937b7dd44cbb..82a32f8e78c12 100644 >--- a/drivers/net/ethernet/intel/iavf/iavf_adminq.c >+++ b/drivers/net/ethernet/intel/iavf/iavf_adminq.c >@@ -346,6 +346,7 @@ static enum iavf_status iavf_init_asq(struct iavf_hw *hw) > iavf_free_virt_mem(hw, &hw->aq.asq.dma_head); > > init_adminq_free_rings: >+ iavf_free_virt_mem(hw, &hw->aq.asq.cmd_buf); Hi Xuanqiang much thanks for the patches! how about moving that line directly into iavf_free_adminq_asq()? then free func would be paired 1:1 with alloc func > iavf_free_adminq_asq(hw); > > init_adminq_exit: >-- >2.43.0 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Intel-wired-lan] [PATCH iwl-net v1 1/2] iavf: fix ASQ command buffer leak on init failure 2026-07-15 7:24 ` Jagielski, Jedrzej @ 2026-07-15 8:30 ` luoxuanqiang 0 siblings, 0 replies; 6+ messages in thread From: luoxuanqiang @ 2026-07-15 8:30 UTC (permalink / raw) To: Jagielski, Jedrzej, Nguyen, Anthony L, Kitszel, Przemyslaw, intel-wired-lan@lists.osuosl.org Cc: Andrew Lunn, Mitch Williams, Greg Rose, Sudheer Mogilappagari, netdev@vger.kernel.org, Xuanqiang Luo, stable@vger.kernel.org 在 2026/7/15 15:24, Jagielski, Jedrzej 写道: > From: xuanqiang.luo@linux.dev <xuanqiang.luo@linux.dev> > Sent: Wednesday, July 15, 2026 8:12 AM > >> From: Xuanqiang Luo <luoxuanqiang@kylinos.cn> >> >> iavf_alloc_adminq_asq_ring() allocates cmd_buf before the remaining ASQ >> resources. If iavf_alloc_asq_bufs() or iavf_config_asq_regs() fails, the >> unwind path elides cmd_buf while freeing the other allocations. >> >> The ASQ count is not set until initialization succeeds, so the shutdown >> path cannot reclaim the buffer. Free cmd_buf in the common unwind path. >> >> Fixes: d358aa9a7a2d ("i40evf: init code and hardware support") >> Cc: stable@vger.kernel.org >> Signed-off-by: Xuanqiang Luo <luoxuanqiang@kylinos.cn> >> --- >> drivers/net/ethernet/intel/iavf/iavf_adminq.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/drivers/net/ethernet/intel/iavf/iavf_adminq.c b/drivers/net/ethernet/intel/iavf/iavf_adminq.c >> index 6937b7dd44cbb..82a32f8e78c12 100644 >> --- a/drivers/net/ethernet/intel/iavf/iavf_adminq.c >> +++ b/drivers/net/ethernet/intel/iavf/iavf_adminq.c >> @@ -346,6 +346,7 @@ static enum iavf_status iavf_init_asq(struct iavf_hw *hw) >> iavf_free_virt_mem(hw, &hw->aq.asq.dma_head); >> >> init_adminq_free_rings: >> + iavf_free_virt_mem(hw, &hw->aq.asq.cmd_buf); > Hi Xuanqiang > much thanks for the patches! > > how about moving that line directly into iavf_free_adminq_asq()? > then free func would be paired 1:1 with alloc func Thanks for the suggestion! I've addressed it and sent out v2. > >> iavf_free_adminq_asq(hw); >> >> init_adminq_exit: >> -- >> 2.43.0 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Intel-wired-lan] [PATCH iwl-net v1 2/2] iavf: fix QoS capabilities memory leak 2026-07-15 6:11 [Intel-wired-lan] [PATCH iwl-net v1 0/2] iavf: fix two memory leaks xuanqiang.luo 2026-07-15 6:11 ` [Intel-wired-lan] [PATCH iwl-net v1 1/2] iavf: fix ASQ command buffer leak on init failure xuanqiang.luo @ 2026-07-15 6:11 ` xuanqiang.luo 2026-07-15 7:24 ` Jagielski, Jedrzej 1 sibling, 1 reply; 6+ messages in thread From: xuanqiang.luo @ 2026-07-15 6:11 UTC (permalink / raw) To: Tony Nguyen, Przemek Kitszel, intel-wired-lan Cc: Andrew Lunn, Mitch Williams, Greg Rose, Sudheer Mogilappagari, netdev, Xuanqiang Luo, stable From: Xuanqiang Luo <luoxuanqiang@kylinos.cn> Commit 4c1a457cb8b0 ("iavf: add support to exchange qos capabilities") allocates adapter->qos_caps during probe, but iavf_remove() does not free it. This leaks the allocation whenever an iavf device is removed. Free adapter->qos_caps in iavf_remove(). Fixes: 4c1a457cb8b0 ("iavf: add support to exchange qos capabilities") Cc: stable@vger.kernel.org Signed-off-by: Xuanqiang Luo <luoxuanqiang@kylinos.cn> --- drivers/net/ethernet/intel/iavf/iavf_main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ethernet/intel/iavf/iavf_main.c b/drivers/net/ethernet/intel/iavf/iavf_main.c index 29b8403a066bc..c7f69a9040588 100644 --- a/drivers/net/ethernet/intel/iavf/iavf_main.c +++ b/drivers/net/ethernet/intel/iavf/iavf_main.c @@ -5589,6 +5589,7 @@ static void iavf_remove(struct pci_dev *pdev) iounmap(hw->hw_addr); pci_release_regions(pdev); kfree(adapter->vf_res); + kfree(adapter->qos_caps); spin_lock_bh(&adapter->mac_vlan_list_lock); /* If we got removed before an up/down sequence, we've got a filter * hanging out there that we need to get rid of. -- 2.43.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Intel-wired-lan] [PATCH iwl-net v1 2/2] iavf: fix QoS capabilities memory leak 2026-07-15 6:11 ` [Intel-wired-lan] [PATCH iwl-net v1 2/2] iavf: fix QoS capabilities memory leak xuanqiang.luo @ 2026-07-15 7:24 ` Jagielski, Jedrzej 0 siblings, 0 replies; 6+ messages in thread From: Jagielski, Jedrzej @ 2026-07-15 7:24 UTC (permalink / raw) To: xuanqiang.luo@linux.dev, Nguyen, Anthony L, Kitszel, Przemyslaw, intel-wired-lan@lists.osuosl.org Cc: Andrew Lunn, Mitch Williams, Greg Rose, Sudheer Mogilappagari, netdev@vger.kernel.org, Xuanqiang Luo, stable@vger.kernel.org From: xuanqiang.luo@linux.dev <xuanqiang.luo@linux.dev> Sent: Wednesday, July 15, 2026 8:12 AM >From: Xuanqiang Luo <luoxuanqiang@kylinos.cn> > >Commit 4c1a457cb8b0 ("iavf: add support to exchange qos capabilities") >allocates adapter->qos_caps during probe, but iavf_remove() does not >free it. This leaks the allocation whenever an iavf device is removed. > >Free adapter->qos_caps in iavf_remove(). > >Fixes: 4c1a457cb8b0 ("iavf: add support to exchange qos capabilities") >Cc: stable@vger.kernel.org >Signed-off-by: Xuanqiang Luo <luoxuanqiang@kylinos.cn> Reviewed-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com> ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-07-15 8:31 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-07-15 6:11 [Intel-wired-lan] [PATCH iwl-net v1 0/2] iavf: fix two memory leaks xuanqiang.luo 2026-07-15 6:11 ` [Intel-wired-lan] [PATCH iwl-net v1 1/2] iavf: fix ASQ command buffer leak on init failure xuanqiang.luo 2026-07-15 7:24 ` Jagielski, Jedrzej 2026-07-15 8:30 ` luoxuanqiang 2026-07-15 6:11 ` [Intel-wired-lan] [PATCH iwl-net v1 2/2] iavf: fix QoS capabilities memory leak xuanqiang.luo 2026-07-15 7:24 ` Jagielski, Jedrzej
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox