[Intel-wired-lan] [PATCH iwl-net v2 1/2] iavf: fix ASQ command buffer leak on init failure
luoxuanqiang
xuanqiang.luo at linux.dev
Wed Jul 15 09:40:01 UTC 2026
在 2026/7/15 17:28, Jagielski, Jedrzej 写道:
> From: xuanqiang.luo at linux.dev <xuanqiang.luo at linux.dev>
> Sent: Wednesday, July 15, 2026 10:26 AM
>
>> From: Xuanqiang Luo <luoxuanqiang at 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 at vger.kernel.org
>> Signed-off-by: Xuanqiang Luo <luoxuanqiang at 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 at 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.
More information about the Intel-wired-lan
mailing list