net/ice/base: workaround unexpected rule deletion

Ideally a rule with "TO VSI LIST" action should not be deleted when one
of the VF reset happens. The correct action by kernel PF driver is to
remove the VSI of a reset VF from the VSI list, but this is not
implemented in kernel PF yet, so workaround is the DCF to prevent a
rule with "To VSI List" action happens.

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
This commit is contained in:
Qi Zhang 2020-04-23 12:22:13 +08:00 committed by Ferruh Yigit
parent b58398d9f8
commit a3a51cbc7a

View File

@ -6742,6 +6742,13 @@ ice_adv_add_update_vsi_list(struct ice_hw *hw,
cur_fltr->sw_act.fltr_act == ICE_FWD_TO_VSI_LIST))
return ICE_ERR_NOT_IMPL;
/* Workaround fix for unexpected rule deletion by kernel PF
* during VF reset.
*/
if (new_fltr->sw_act.fltr_act == ICE_FWD_TO_VSI &&
cur_fltr->sw_act.fltr_act == ICE_FWD_TO_VSI)
return ICE_ERR_NOT_IMPL;
if (m_entry->vsi_count < 2 && !m_entry->vsi_list_info) {
/* Only one entry existed in the mapping and it was not already
* a part of a VSI list. So, create a VSI list with the old and