Linux kernel -stable discussions
 help / color / mirror / Atom feed
* [PATCH iwl-net v1 1/2] iavf: fix ASQ command buffer leak on init failure
       [not found] <20260715061131.34420-1-xuanqiang.luo@linux.dev>
@ 2026-07-15  6:11 ` xuanqiang.luo
  2026-07-15  7:24   ` Jagielski, Jedrzej
  2026-07-15  6:11 ` [PATCH iwl-net v1 2/2] iavf: fix QoS capabilities memory leak xuanqiang.luo
  1 sibling, 1 reply; 5+ 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] 5+ messages in thread

* [PATCH iwl-net v1 2/2] iavf: fix QoS capabilities memory leak
       [not found] <20260715061131.34420-1-xuanqiang.luo@linux.dev>
  2026-07-15  6:11 ` [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; 5+ 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] 5+ messages in thread

* RE: [PATCH iwl-net v1 1/2] iavf: fix ASQ command buffer leak on init failure
  2026-07-15  6:11 ` [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; 5+ 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] 5+ messages in thread

* RE: [PATCH iwl-net v1 2/2] iavf: fix QoS capabilities memory leak
  2026-07-15  6:11 ` [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; 5+ 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] 5+ messages in thread

* Re: [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; 5+ 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] 5+ messages in thread

end of thread, other threads:[~2026-07-15  8:30 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20260715061131.34420-1-xuanqiang.luo@linux.dev>
2026-07-15  6:11 ` [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 ` [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