When a vsi that already exists in the created vsi_list subscribes to the same filter again, the return value ICE_SUCCESS results in duplicate flow rules to be stored, which will cause 'flush' and 'destroy' errors.
Fixes: fed0c5ca5f19 ("net/ice/base: support programming a new switch recipe") Cc: sta...@dpdk.org Signed-off-by: Yiding Zhou <yidingx.z...@intel.com> --- drivers/net/ice/base/ice_switch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ice/base/ice_switch.c b/drivers/net/ice/base/ice_switch.c index 4b115ce660..a2581f404d 100644 --- a/drivers/net/ice/base/ice_switch.c +++ b/drivers/net/ice/base/ice_switch.c @@ -8786,7 +8786,7 @@ ice_adv_add_update_vsi_list(struct ice_hw *hw, /* A rule already exists with the new VSI being added */ if (ice_is_bit_set(m_entry->vsi_list_info->vsi_map, vsi_handle)) - return ICE_SUCCESS; + return ICE_ERR_ALREADY_EXISTS; /* Update the previously created VSI list set with * the new VSI ID passed in -- 2.34.1