Message ID | 1417874601.31745.21.camel@perches.com |
---|---|
State | Awaiting Upstream, archived |
Delegated to: | David Miller |
Headers | show |
On Sat, 2014-12-06 at 06:03 -0800, Joe Perches wrote: > I didn't notice that return in the code, fix it by > adding a goto out instead to free the memory. > > Fixes: > > > New smatch warnings: > > drivers/net/ethernet/intel/i40e/i40e_debugfs.c:832 > i40e_dbg_dump_desc() warn: possible memory leak of 'ring' > > Signed-off-by: Joe Perches <joe@perches.com> > Noticed-by: Dan Carpenter <dan.carpenter@oracle.com> (go smatch) > --- > > Jeff Kirsher can legitimately give me a hard time now... > Thanks Dan. > > drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) Thanks Joe, I have added your patch to my queue.
diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c index 433a558..cb0de45 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c +++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c @@ -829,7 +829,7 @@ static void i40e_dbg_dump_desc(int cnt, int vsi_seid, int ring_id, int desc_n, if (desc_n >= ring->count || desc_n < 0) { dev_info(&pf->pdev->dev, "descriptor %d not found\n", desc_n); - return; + goto out; } if (!is_rx_ring) { txd = I40E_TX_DESC(ring, desc_n); @@ -855,6 +855,8 @@ static void i40e_dbg_dump_desc(int cnt, int vsi_seid, int ring_id, int desc_n, } else { dev_info(&pf->pdev->dev, "dump desc rx/tx <vsi_seid> <ring_id> [<desc_n>]\n"); } + +out: kfree(ring); }