Skip to content

Commit

Permalink
net/iavf/base: fix command buffer memory leak
Browse files Browse the repository at this point in the history
[ upstream commit 87aca6d ]

Allocated resources were not freed in the event of failure in
iavf_init_asq function. This patch gracefully handles all failures.

Fixes: e5b2a9e ("net/avf/base: add base code for avf PMD")

Signed-off-by: Pandi Kumar Maharajan <pandi.maharajan@intel.com>
Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Qiming Yang <qiming.yang@intel.com>
  • Loading branch information
qzhan16 authored and kevintraynor committed Feb 7, 2020
1 parent 7224d8b commit ee7c6ac
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion drivers/net/avf/base/avf_adminq.c
Expand Up @@ -113,6 +113,7 @@ enum avf_status_code avf_alloc_adminq_arq_ring(struct avf_hw *hw)
**/
void avf_free_adminq_asq(struct avf_hw *hw)
{
avf_free_virt_mem(hw, &hw->aq.asq.cmd_buf);
avf_free_dma_mem(hw, &hw->aq.asq.desc_buf);
}

Expand Down Expand Up @@ -396,14 +397,18 @@ enum avf_status_code avf_init_asq(struct avf_hw *hw)
/* initialize base registers */
ret_code = avf_config_asq_regs(hw);
if (ret_code != AVF_SUCCESS)
goto init_adminq_free_rings;
goto init_config_regs;

/* success! */
hw->aq.asq.count = hw->aq.num_asq_entries;
goto init_adminq_exit;

init_adminq_free_rings:
avf_free_adminq_asq(hw);
return ret_code;

init_config_regs:
avf_free_asq_bufs(hw);

init_adminq_exit:
return ret_code;
Expand Down

0 comments on commit ee7c6ac

Please sign in to comment.