From: Alvin Zhang Date: Fri, 19 Feb 2021 05:13:46 +0000 (+0800) Subject: net/ice: fix VLAN filter with PF X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=da996000e8ea513ee47e3e01f0f4e709e66cec07;p=dpdk.git net/ice: fix VLAN filter with PF The macro flag DEV_RX_OFFLOAD_VLAN_FILTER is used to enable/disable Rx VLAN filter, but not Tx VLAN filter. Therefore, Tx VLAN filter should not be enabled/disabled in function ice_vsi_config_vlan_filter called after checking DEV_RX_OFFLOAD_VLAN_FILTER flag. In addition, the kernel driver doesn't enable/disable the TX VLAN filter in the similar function ice_cfg_vlan_pruning. This patch removes the setting about the TX VLAN filter in function ice_vsi_config_vlan_filter. Fixes: e0dcf94a0d7f ("net/ice: support VLAN ops") Cc: stable@dpdk.org Signed-off-by: Alvin Zhang Tested-by: Zhimin Huang Acked-by: Qi Zhang --- diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c index dfd99ace94..8999d441ac 100644 --- a/drivers/net/ice/ice_ethdev.c +++ b/drivers/net/ice/ice_ethdev.c @@ -4011,20 +4011,16 @@ ice_vsi_config_vlan_filter(struct ice_vsi *vsi, bool on) { struct ice_hw *hw = ICE_VSI_TO_HW(vsi); struct ice_vsi_ctx ctxt; - uint8_t sec_flags, sw_flags2; + uint8_t sw_flags2; int ret = 0; - sec_flags = ICE_AQ_VSI_SEC_TX_VLAN_PRUNE_ENA << - ICE_AQ_VSI_SEC_TX_PRUNE_ENA_S; sw_flags2 = ICE_AQ_VSI_SW_FLAG_RX_VLAN_PRUNE_ENA; - if (on) { - vsi->info.sec_flags |= sec_flags; + if (on) vsi->info.sw_flags2 |= sw_flags2; - } else { - vsi->info.sec_flags &= ~sec_flags; + else vsi->info.sw_flags2 &= ~sw_flags2; - } + vsi->info.sw_id = hw->port_info->sw_id; (void)rte_memcpy(&ctxt.info, &vsi->info, sizeof(vsi->info)); ctxt.info.valid_sections =