linux/drivers/net/ethernet/intel/ice
Jacob Keller f6a07271bb ice: fix memory leak in ice_vsi_setup
During ice_vsi_setup, if ice_cfg_vsi_lan fails, it does not properly
release memory associated with the VSI rings. If we had used devres
allocations for the rings, this would be ok. However, we use kzalloc and
kfree_rcu for these ring structures.

Using the correct label to cleanup the rings during ice_vsi_setup
highlights an issue in the ice_vsi_clear_rings function: it can leave
behind stale ring pointers in the q_vectors structure.

When releasing rings, we must also ensure that no q_vector associated
with the VSI will point to this ring again. To resolve this, loop over
all q_vectors and release their ring mapping. Because we are about to
free all rings, no q_vector should remain pointing to any of the rings
in this VSI.

Fixes: 5513b920a4 ("ice: Update Tx scheduler tree for VSI multi-Tx queue support")
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2020-09-25 07:39:24 -07:00
..
ice_adminq_cmd.h ice: fix the vsi_id mask to be 10 bit for set_rss_lut 2020-08-01 08:20:10 -07:00
ice_arfs.c ice: Implement aRFS 2020-05-22 22:02:34 -07:00
ice_arfs.h ice: Implement aRFS 2020-05-22 22:02:34 -07:00
ice_base.c ice: replace single-element array used for C struct hack 2020-07-01 16:35:23 -07:00
ice_base.h ice: Add support to enable/disable all Rx queues before waiting 2020-02-15 16:39:55 -08:00
ice_common.c ice: Misc minor fixes 2020-08-01 08:44:04 -07:00
ice_common.h ice: Implement LFC workaround 2020-07-29 08:38:54 -07:00
ice_controlq.c ice: reduce scope of variable 2020-07-29 08:38:55 -07:00
ice_controlq.h ice: Handle critical FW error during admin queue initialization 2020-05-27 17:48:23 -07:00
ice_dcb_lib.c ice: fix link event handling timing 2020-07-29 08:38:54 -07:00
ice_dcb_lib.h ice: Implement LFC workaround 2020-07-29 08:38:54 -07:00
ice_dcb_nl.c ice: remove unused macro 2020-05-27 17:03:40 -07:00
ice_dcb_nl.h ice: Implement DCBNL support 2019-11-08 12:02:14 -08:00
ice_dcb.c ice: Implement LFC workaround 2020-07-29 08:38:54 -07:00
ice_dcb.h ice: replace single-element array used for C struct hack 2020-07-01 16:35:23 -07:00
ice_devids.h ice: fix define for E822 backplane device 2020-02-19 13:39:33 -08:00
ice_devlink.c ice: Misc minor fixes 2020-08-01 08:44:04 -07:00
ice_devlink.h ice: add a devlink region for dumping NVM contents 2020-03-26 19:39:26 -07:00
ice_ethtool_fdir.c ice: fix aRFS after flow director delete 2020-05-31 03:58:12 -07:00
ice_ethtool.c ice: add useful statistics 2020-08-01 08:44:04 -07:00
ice_fdir.c ice: Enable flex-bytes support 2020-05-22 21:44:48 -07:00
ice_fdir.h ice: Enable flex-bytes support 2020-05-22 21:44:48 -07:00
ice_flex_pipe.c ice: Misc minor fixes 2020-08-01 08:44:04 -07:00
ice_flex_pipe.h ice: Support IPv4 Flow Director filters 2020-05-22 21:36:27 -07:00
ice_flex_type.h ice: replace single-element array used for C struct hack 2020-07-01 16:35:23 -07:00
ice_flow.c ice: Fix RSS profile locks 2020-08-01 08:22:30 -07:00
ice_flow.h ice: Enable flex-bytes support 2020-05-22 21:44:48 -07:00
ice_fltr.c ice: refactor filter functions 2020-05-21 22:10:04 -07:00
ice_fltr.h ice: refactor filter functions 2020-05-21 22:10:04 -07:00
ice_fw_update.c ice: implement device flash update via devlink 2020-07-28 17:07:06 -07:00
ice_fw_update.h ice: implement device flash update via devlink 2020-07-28 17:07:06 -07:00
ice_hw_autogen.h ice: Misc minor fixes 2020-08-01 08:44:04 -07:00
ice_lan_tx_rx.h ice: update PTYPE lookup table 2020-08-01 08:44:04 -07:00
ice_lib.c ice: fix memory leak in ice_vsi_setup 2020-09-25 07:39:24 -07:00
ice_lib.h ice: fix memory leak if register_netdev_fails 2020-09-25 07:39:24 -07:00
ice_main.c ice: fix memory leak if register_netdev_fails 2020-09-25 07:39:24 -07:00
ice_nvm.c ice: Add AdminQ commands for FW update 2020-07-28 17:07:06 -07:00
ice_nvm.h ice: Add AdminQ commands for FW update 2020-07-28 17:07:06 -07:00
ice_osdep.h ice: Start hardware initialization 2018-03-26 09:59:08 -07:00
ice_protocol_type.h ice: Enable flex-bytes support 2020-05-22 21:44:48 -07:00
ice_sched.c ice: Misc minor fixes 2020-08-01 08:44:04 -07:00
ice_sched.h ice: avoid unnecessary single-member variable-length structs 2020-07-01 16:33:29 -07:00
ice_sriov.c ice: remove unnecessary fallthrough comments 2020-02-15 16:56:48 -08:00
ice_sriov.h ice: Add handlers for VF netdevice operations 2018-10-03 07:42:30 -07:00
ice_status.h ice: Handle critical FW error during admin queue initialization 2020-05-27 17:48:23 -07:00
ice_switch.c ice: return correct error code from ice_aq_sw_rules 2020-07-29 08:38:55 -07:00
ice_switch.h ice: Initialize Flow Director resources 2020-05-22 21:26:37 -07:00
ice_txrx_lib.c ice: add useful statistics 2020-08-01 08:44:04 -07:00
ice_txrx_lib.h ice: Rename build_ctob to ice_build_ctob 2020-05-21 22:10:04 -07:00
ice_txrx.c ice: Misc minor fixes 2020-08-01 08:44:04 -07:00
ice_txrx.h ice: add useful statistics 2020-08-01 08:44:04 -07:00
ice_type.h ice: Misc minor fixes 2020-08-01 08:44:04 -07:00
ice_virtchnl_pf.c ice: Misc minor fixes 2020-08-01 08:44:04 -07:00
ice_virtchnl_pf.h ice: Allow 2 queue pairs per VF on SR-IOV initialization 2020-08-01 08:44:04 -07:00
ice_xsk.c ice: Misc minor fixes 2020-08-01 08:44:04 -07:00
ice_xsk.h ice, xsk: Migrate to new MEM_TYPE_XSK_BUFF_POOL 2020-05-21 17:31:26 -07:00
ice.h ice: add useful statistics 2020-08-01 08:44:04 -07:00
Makefile ice: implement device flash update via devlink 2020-07-28 17:07:06 -07:00