diff options
Diffstat (limited to 'drivers/net/ethernet/intel/ice/ice_lib.c')
| -rw-r--r-- | drivers/net/ethernet/intel/ice/ice_lib.c | 7 | 
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/ethernet/intel/ice/ice_lib.c b/drivers/net/ethernet/intel/ice/ice_lib.c index 0f52ea38b6f3..11ae0e41f518 100644 --- a/drivers/net/ethernet/intel/ice/ice_lib.c +++ b/drivers/net/ethernet/intel/ice/ice_lib.c @@ -291,6 +291,7 @@ static void ice_vsi_delete_from_hw(struct ice_vsi *vsi)  	struct ice_vsi_ctx *ctxt;  	int status; +	ice_fltr_remove_all(vsi);  	ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL);  	if (!ctxt)  		return; @@ -2744,6 +2745,8 @@ ice_vsi_cfg_def(struct ice_vsi *vsi, struct ice_vsi_cfg_params *params)  			goto unroll_vector_base;  		ice_vsi_map_rings_to_vectors(vsi); +		vsi->stat_offsets_loaded = false; +  		if (ice_is_xdp_ena_vsi(vsi)) {  			ret = ice_vsi_determine_xdp_res(vsi);  			if (ret) @@ -2792,6 +2795,9 @@ ice_vsi_cfg_def(struct ice_vsi *vsi, struct ice_vsi_cfg_params *params)  		ret = ice_vsi_alloc_ring_stats(vsi);  		if (ret)  			goto unroll_vector_base; + +		vsi->stat_offsets_loaded = false; +  		/* Do not exit if configuring RSS had an issue, at least  		 * receive traffic on first queue. Hence no need to capture  		 * return value @@ -2892,7 +2898,6 @@ void ice_vsi_decfg(struct ice_vsi *vsi)  	    !test_bit(ICE_FLAG_FW_LLDP_AGENT, pf->flags))  		ice_cfg_sw_lldp(vsi, false, false); -	ice_fltr_remove_all(vsi);  	ice_rm_vsi_lan_cfg(vsi->port_info, vsi->idx);  	err = ice_rm_vsi_rdma_cfg(vsi->port_info, vsi->idx);  	if (err)  |