From: luoxuanqiang <xuanqiang.luo@linux.dev>
To: "Jagielski, Jedrzej" <jedrzej.jagielski@intel.com>,
"Nguyen, Anthony L" <anthony.l.nguyen@intel.com>,
"Kitszel, Przemyslaw" <przemyslaw.kitszel@intel.com>,
"intel-wired-lan@lists.osuosl.org"
<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" <netdev@vger.kernel.org>,
Xuanqiang Luo <luoxuanqiang@kylinos.cn>,
"stable@vger.kernel.org" <stable@vger.kernel.org>
Subject: Re: [PATCH iwl-net v1 1/2] iavf: fix ASQ command buffer leak on init failure
Date: Wed, 15 Jul 2026 16:30:06 +0800 [thread overview]
Message-ID: <fcd20554-beb3-4ac8-9768-14f9bb8ce8b4@linux.dev> (raw)
In-Reply-To: <PH0PR11MB590272FD2023440F52E95689F0F82@PH0PR11MB5902.namprd11.prod.outlook.com>
在 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
WARNING: multiple messages have this Message-ID (diff)
From: luoxuanqiang <xuanqiang.luo@linux.dev>
To: "Jagielski, Jedrzej" <jedrzej.jagielski@intel.com>,
"Nguyen, Anthony L" <anthony.l.nguyen@intel.com>,
"Kitszel, Przemyslaw" <przemyslaw.kitszel@intel.com>,
"intel-wired-lan@lists.osuosl.org"
<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" <netdev@vger.kernel.org>,
Xuanqiang Luo <luoxuanqiang@kylinos.cn>,
"stable@vger.kernel.org" <stable@vger.kernel.org>
Subject: Re: [Intel-wired-lan] [PATCH iwl-net v1 1/2] iavf: fix ASQ command buffer leak on init failure
Date: Wed, 15 Jul 2026 16:30:06 +0800 [thread overview]
Message-ID: <fcd20554-beb3-4ac8-9768-14f9bb8ce8b4@linux.dev> (raw)
In-Reply-To: <PH0PR11MB590272FD2023440F52E95689F0F82@PH0PR11MB5902.namprd11.prod.outlook.com>
在 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
next prev parent reply other threads:[~2026-07-15 8:30 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
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 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 ` [Intel-wired-lan] " Jagielski, Jedrzej
2026-07-15 7:24 ` Jagielski, Jedrzej
2026-07-15 8:30 ` luoxuanqiang [this message]
2026-07-15 8:30 ` [Intel-wired-lan] " 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 6:11 ` xuanqiang.luo
2026-07-15 7:24 ` [Intel-wired-lan] " Jagielski, Jedrzej
2026-07-15 7:24 ` Jagielski, Jedrzej
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=fcd20554-beb3-4ac8-9768-14f9bb8ce8b4@linux.dev \
--to=xuanqiang.luo@linux.dev \
--cc=andrew+netdev@lunn.ch \
--cc=anthony.l.nguyen@intel.com \
--cc=gregory.v.rose@intel.com \
--cc=intel-wired-lan@lists.osuosl.org \
--cc=jedrzej.jagielski@intel.com \
--cc=luoxuanqiang@kylinos.cn \
--cc=mitch.a.williams@intel.com \
--cc=netdev@vger.kernel.org \
--cc=przemyslaw.kitszel@intel.com \
--cc=stable@vger.kernel.org \
--cc=sudheer.mogilappagari@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.