* [PATCH iwl-net v2 1/2] iavf: fix ASQ command buffer leak on init failure
[not found] <20260715082548.56687-1-xuanqiang.luo@linux.dev>
@ 2026-07-15 8:25 ` xuanqiang.luo
2026-07-15 9:28 ` Jagielski, Jedrzej
2026-07-23 9:23 ` [Intel-wired-lan] " Loktionov, Aleksandr
2026-07-15 8:25 ` [PATCH iwl-net v2 2/2] iavf: fix QoS capabilities memory leak xuanqiang.luo
1 sibling, 2 replies; 6+ messages in thread
From: xuanqiang.luo @ 2026-07-15 8:25 UTC (permalink / raw)
To: Tony Nguyen, Przemek Kitszel, Jagielski, Jedrzej, 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..40f76f9507f4b 100644
--- a/drivers/net/ethernet/intel/iavf/iavf_adminq.c
+++ b/drivers/net/ethernet/intel/iavf/iavf_adminq.c
@@ -60,6 +60,7 @@ static enum iavf_status iavf_alloc_adminq_arq_ring(struct iavf_hw *hw)
**/
static void iavf_free_adminq_asq(struct iavf_hw *hw)
{
+ iavf_free_virt_mem(hw, &hw->aq.asq.cmd_buf);
iavf_free_dma_mem(hw, &hw->aq.asq.desc_buf);
}
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH iwl-net v2 2/2] iavf: fix QoS capabilities memory leak
[not found] <20260715082548.56687-1-xuanqiang.luo@linux.dev>
2026-07-15 8:25 ` [PATCH iwl-net v2 1/2] iavf: fix ASQ command buffer leak on init failure xuanqiang.luo
@ 2026-07-15 8:25 ` xuanqiang.luo
2026-07-23 9:24 ` [Intel-wired-lan] " Loktionov, Aleksandr
1 sibling, 1 reply; 6+ messages in thread
From: xuanqiang.luo @ 2026-07-15 8:25 UTC (permalink / raw)
To: Tony Nguyen, Przemek Kitszel, Jagielski, Jedrzej, 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
Reviewed-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com>
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: [PATCH iwl-net v2 1/2] iavf: fix ASQ command buffer leak on init failure
2026-07-15 8:25 ` [PATCH iwl-net v2 1/2] iavf: fix ASQ command buffer leak on init failure xuanqiang.luo
@ 2026-07-15 9:28 ` Jagielski, Jedrzej
2026-07-15 9:40 ` luoxuanqiang
2026-07-23 9:23 ` [Intel-wired-lan] " Loktionov, Aleksandr
1 sibling, 1 reply; 6+ messages in thread
From: Jagielski, Jedrzej @ 2026-07-15 9:28 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 10:26 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..40f76f9507f4b 100644
>--- a/drivers/net/ethernet/intel/iavf/iavf_adminq.c
>+++ b/drivers/net/ethernet/intel/iavf/iavf_adminq.c
>@@ -60,6 +60,7 @@ static enum iavf_status iavf_alloc_adminq_arq_ring(struct iavf_hw *hw)
> **/
> static void iavf_free_adminq_asq(struct iavf_hw *hw)
> {
>+ iavf_free_virt_mem(hw, &hw->aq.asq.cmd_buf);
> iavf_free_dma_mem(hw, &hw->aq.asq.desc_buf);
> }
>
>--
>2.43.0
Looks fine, thanks!
Reviewed-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com>
One note for the future - please be aware that there is minimal time period to be
waited before resubmitting new patch revision, which is at least 24h for netdev/IWL
mailing lists
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH iwl-net v2 1/2] iavf: fix ASQ command buffer leak on init failure
2026-07-15 9:28 ` Jagielski, Jedrzej
@ 2026-07-15 9:40 ` luoxuanqiang
0 siblings, 0 replies; 6+ messages in thread
From: luoxuanqiang @ 2026-07-15 9:40 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 17:28, Jagielski, Jedrzej 写道:
> From: xuanqiang.luo@linux.dev <xuanqiang.luo@linux.dev>
> Sent: Wednesday, July 15, 2026 10:26 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..40f76f9507f4b 100644
>> --- a/drivers/net/ethernet/intel/iavf/iavf_adminq.c
>> +++ b/drivers/net/ethernet/intel/iavf/iavf_adminq.c
>> @@ -60,6 +60,7 @@ static enum iavf_status iavf_alloc_adminq_arq_ring(struct iavf_hw *hw)
>> **/
>> static void iavf_free_adminq_asq(struct iavf_hw *hw)
>> {
>> + iavf_free_virt_mem(hw, &hw->aq.asq.cmd_buf);
>> iavf_free_dma_mem(hw, &hw->aq.asq.desc_buf);
>> }
>>
>> --
>> 2.43.0
> Looks fine, thanks!
>
> Reviewed-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com>
>
> One note for the future - please be aware that there is minimal time period to be
> waited before resubmitting new patch revision, which is at least 24h for netdev/IWL
> mailing lists
Thanks for the reminder!
I also received a notification from netdev-bot, and I'll keep this in
mind for future revisions.
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-net v2 1/2] iavf: fix ASQ command buffer leak on init failure
2026-07-15 8:25 ` [PATCH iwl-net v2 1/2] iavf: fix ASQ command buffer leak on init failure xuanqiang.luo
2026-07-15 9:28 ` Jagielski, Jedrzej
@ 2026-07-23 9:23 ` Loktionov, Aleksandr
1 sibling, 0 replies; 6+ messages in thread
From: Loktionov, Aleksandr @ 2026-07-23 9:23 UTC (permalink / raw)
To: xuanqiang.luo@linux.dev, Nguyen, Anthony L, Kitszel, Przemyslaw,
Jagielski, Dariusz, Jagielski, Jedrzej,
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
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> Of xuanqiang.luo@linux.dev
> Sent: Wednesday, July 15, 2026 10:26 AM
> To: Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel,
> Przemyslaw <przemyslaw.kitszel@intel.com>; Jagielski; Jagielski,
> Jedrzej <jedrzej.jagielski@intel.com>; intel-wired-
> lan@lists.osuosl.org
> Cc: Andrew Lunn <andrew+netdev@lunn.ch>; Mitch Williams
> <mitch.a.williams@intel.com>; Greg Rose <gregory.v.rose@intel.com>;
> Sudheer Mogilappagari <sudheer.mogilappagari@intel.com>;
> netdev@vger.kernel.org; Xuanqiang Luo <luoxuanqiang@kylinos.cn>;
> stable@vger.kernel.org
> Subject: [Intel-wired-lan] [PATCH iwl-net v2 1/2] iavf: fix ASQ
> command buffer leak on init failure
>
> 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..40f76f9507f4b 100644
> --- a/drivers/net/ethernet/intel/iavf/iavf_adminq.c
> +++ b/drivers/net/ethernet/intel/iavf/iavf_adminq.c
> @@ -60,6 +60,7 @@ static enum iavf_status
> iavf_alloc_adminq_arq_ring(struct iavf_hw *hw)
> **/
> static void iavf_free_adminq_asq(struct iavf_hw *hw) {
> + iavf_free_virt_mem(hw, &hw->aq.asq.cmd_buf);
> iavf_free_dma_mem(hw, &hw->aq.asq.desc_buf); }
>
> --
> 2.43.0
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-net v2 2/2] iavf: fix QoS capabilities memory leak
2026-07-15 8:25 ` [PATCH iwl-net v2 2/2] iavf: fix QoS capabilities memory leak xuanqiang.luo
@ 2026-07-23 9:24 ` Loktionov, Aleksandr
0 siblings, 0 replies; 6+ messages in thread
From: Loktionov, Aleksandr @ 2026-07-23 9:24 UTC (permalink / raw)
To: xuanqiang.luo@linux.dev, Nguyen, Anthony L, Kitszel, Przemyslaw,
Jagielski, Dariusz, Jagielski, Jedrzej,
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
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> Of xuanqiang.luo@linux.dev
> Sent: Wednesday, July 15, 2026 10:26 AM
> To: Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel,
> Przemyslaw <przemyslaw.kitszel@intel.com>; Jagielski; Jagielski,
> Jedrzej <jedrzej.jagielski@intel.com>; intel-wired-
> lan@lists.osuosl.org
> Cc: Andrew Lunn <andrew+netdev@lunn.ch>; Mitch Williams
> <mitch.a.williams@intel.com>; Greg Rose <gregory.v.rose@intel.com>;
> Sudheer Mogilappagari <sudheer.mogilappagari@intel.com>;
> netdev@vger.kernel.org; Xuanqiang Luo <luoxuanqiang@kylinos.cn>;
> stable@vger.kernel.org
> Subject: [Intel-wired-lan] [PATCH iwl-net v2 2/2] iavf: fix QoS
> capabilities memory leak
>
> 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
> Reviewed-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com>
> 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
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-07-23 9:24 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20260715082548.56687-1-xuanqiang.luo@linux.dev>
2026-07-15 8:25 ` [PATCH iwl-net v2 1/2] iavf: fix ASQ command buffer leak on init failure xuanqiang.luo
2026-07-15 9:28 ` Jagielski, Jedrzej
2026-07-15 9:40 ` luoxuanqiang
2026-07-23 9:23 ` [Intel-wired-lan] " Loktionov, Aleksandr
2026-07-15 8:25 ` [PATCH iwl-net v2 2/2] iavf: fix QoS capabilities memory leak xuanqiang.luo
2026-07-23 9:24 ` [Intel-wired-lan] " Loktionov, Aleksandr
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox