Message ID | 20190802082533.23083-8-anthony.l.nguyen@intel.com |
---|---|
State | Accepted |
Delegated to: | Jeff Kirsher |
Headers | show |
Series | [S26,01/15] ice: add support for enabling/disabling single queues | expand |
> -----Original Message----- > From: Intel-wired-lan [mailto:intel-wired-lan-bounces@osuosl.org] On > Behalf Of Tony Nguyen > Sent: Friday, August 2, 2019 1:25 AM > To: intel-wired-lan@lists.osuosl.org > Subject: [Intel-wired-lan] [PATCH S26 08/15] ice: Fix resource leak in > ice_remove_rule_internal() > > From: Jeb Cramer <jeb.j.cramer@intel.com> > > We don't free s_rule if ice_aq_sw_rules() returns a non-zero status. If it > returned a zero status, s_rule would be freed right after, so this implies it > should be freed within the scope of the function regardless. > > Signed-off-by: Jeb Cramer <jeb.j.cramer@intel.com> > --- > drivers/net/ethernet/intel/ice/ice_switch.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
diff --git a/drivers/net/ethernet/intel/ice/ice_switch.c b/drivers/net/ethernet/intel/ice/ice_switch.c index 2e6ea062fa2a..c532fe06f5ad 100644 --- a/drivers/net/ethernet/intel/ice/ice_switch.c +++ b/drivers/net/ethernet/intel/ice/ice_switch.c @@ -1623,12 +1623,13 @@ ice_remove_rule_internal(struct ice_hw *hw, u8 recp_id, status = ice_aq_sw_rules(hw, s_rule, ICE_SW_RULE_RX_TX_NO_HDR_SIZE, 1, ice_aqc_opc_remove_sw_rules, NULL); - if (status) - goto exit; /* Remove a book keeping from the list */ devm_kfree(ice_hw_to_dev(hw), s_rule); + if (status) + goto exit; + list_del(&list_elem->list_entry); devm_kfree(ice_hw_to_dev(hw), list_elem); }