diff options
Diffstat (limited to 'drivers/net/ethernet/intel/ice/ice_lib.c')
| -rw-r--r-- | drivers/net/ethernet/intel/ice/ice_lib.c | 15 | 
1 files changed, 8 insertions, 7 deletions
| diff --git a/drivers/net/ethernet/intel/ice/ice_lib.c b/drivers/net/ethernet/intel/ice/ice_lib.c index 737c00b02dd0..2405e5ed9128 100644 --- a/drivers/net/ethernet/intel/ice/ice_lib.c +++ b/drivers/net/ethernet/intel/ice/ice_lib.c @@ -2413,13 +2413,6 @@ void ice_vsi_decfg(struct ice_vsi *vsi)  	struct ice_pf *pf = vsi->back;  	int err; -	/* The Rx rule will only exist to remove if the LLDP FW -	 * engine is currently stopped -	 */ -	if (!ice_is_safe_mode(pf) && vsi->type == ICE_VSI_PF && -	    !test_bit(ICE_FLAG_FW_LLDP_AGENT, pf->flags)) -		ice_cfg_sw_lldp(vsi, false, false); -  	ice_rm_vsi_lan_cfg(vsi->port_info, vsi->idx);  	err = ice_rm_vsi_rdma_cfg(vsi->port_info, vsi->idx);  	if (err) @@ -2764,6 +2757,14 @@ int ice_vsi_release(struct ice_vsi *vsi)  		ice_rss_clean(vsi);  	ice_vsi_close(vsi); + +	/* The Rx rule will only exist to remove if the LLDP FW +	 * engine is currently stopped +	 */ +	if (!ice_is_safe_mode(pf) && vsi->type == ICE_VSI_PF && +	    !test_bit(ICE_FLAG_FW_LLDP_AGENT, pf->flags)) +		ice_cfg_sw_lldp(vsi, false, false); +  	ice_vsi_decfg(vsi);  	/* retain SW VSI data structure since it is needed to unregister and | 
