ice: Remove boolean vlan_promisc flag from function
Currently, the vlan_promisc flag is used exclusively by VF VSI to determine whether or not to toggle VLAN pruning along with trusted/true-promiscuous mode. This is not needed for a couple of reasons. First, trusted/true-promiscuous mode is only supposed to allow all MAC filters within VLANs that a VF has added filters for, so VLAN pruning should not be disabled. Second, the boolean argument makes the function confusing and unintuitive. Remove this flag. Signed-off-by: Brett Creeley <brett.creeley@intel.com> Tested-by: Tony Brelinski <tony.brelinski@intel.com> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
This commit is contained in:
Родитель
28131d896d
Коммит
29e71f41e7
|
@ -2284,11 +2284,10 @@ bool ice_vsi_is_vlan_pruning_ena(struct ice_vsi *vsi)
|
|||
* ice_cfg_vlan_pruning - enable or disable VLAN pruning on the VSI
|
||||
* @vsi: VSI to enable or disable VLAN pruning on
|
||||
* @ena: set to true to enable VLAN pruning and false to disable it
|
||||
* @vlan_promisc: enable valid security flags if not in VLAN promiscuous mode
|
||||
*
|
||||
* returns 0 if VSI is updated, negative otherwise
|
||||
*/
|
||||
int ice_cfg_vlan_pruning(struct ice_vsi *vsi, bool ena, bool vlan_promisc)
|
||||
int ice_cfg_vlan_pruning(struct ice_vsi *vsi, bool ena)
|
||||
{
|
||||
struct ice_vsi_ctx *ctxt;
|
||||
struct ice_pf *pf;
|
||||
|
@ -2316,9 +2315,7 @@ int ice_cfg_vlan_pruning(struct ice_vsi *vsi, bool ena, bool vlan_promisc)
|
|||
else
|
||||
ctxt->info.sw_flags2 &= ~ICE_AQ_VSI_SW_FLAG_RX_VLAN_PRUNE_ENA;
|
||||
|
||||
if (!vlan_promisc)
|
||||
ctxt->info.valid_sections =
|
||||
cpu_to_le16(ICE_AQ_VSI_PROP_SW_VALID);
|
||||
ctxt->info.valid_sections = cpu_to_le16(ICE_AQ_VSI_PROP_SW_VALID);
|
||||
|
||||
status = ice_update_vsi(&pf->hw, vsi->idx, ctxt, NULL);
|
||||
if (status) {
|
||||
|
|
|
@ -45,7 +45,7 @@ int ice_vsi_stop_xdp_tx_rings(struct ice_vsi *vsi);
|
|||
|
||||
bool ice_vsi_is_vlan_pruning_ena(struct ice_vsi *vsi);
|
||||
|
||||
int ice_cfg_vlan_pruning(struct ice_vsi *vsi, bool ena, bool vlan_promisc);
|
||||
int ice_cfg_vlan_pruning(struct ice_vsi *vsi, bool ena);
|
||||
|
||||
void ice_cfg_sw_lldp(struct ice_vsi *vsi, bool tx, bool create);
|
||||
|
||||
|
|
|
@ -396,7 +396,7 @@ static int ice_vsi_sync_fltr(struct ice_vsi *vsi)
|
|||
~IFF_PROMISC;
|
||||
goto out_promisc;
|
||||
}
|
||||
ice_cfg_vlan_pruning(vsi, false, false);
|
||||
ice_cfg_vlan_pruning(vsi, false);
|
||||
}
|
||||
} else {
|
||||
/* Clear Rx filter to remove traffic from wire */
|
||||
|
@ -410,7 +410,7 @@ static int ice_vsi_sync_fltr(struct ice_vsi *vsi)
|
|||
goto out_promisc;
|
||||
}
|
||||
if (vsi->num_vlan > 1)
|
||||
ice_cfg_vlan_pruning(vsi, true, false);
|
||||
ice_cfg_vlan_pruning(vsi, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3387,7 +3387,7 @@ ice_vlan_rx_add_vid(struct net_device *netdev, __always_unused __be16 proto,
|
|||
|
||||
/* Enable VLAN pruning when a VLAN other than 0 is added */
|
||||
if (!ice_vsi_is_vlan_pruning_ena(vsi)) {
|
||||
ret = ice_cfg_vlan_pruning(vsi, true, false);
|
||||
ret = ice_cfg_vlan_pruning(vsi, true);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
@ -3431,7 +3431,7 @@ ice_vlan_rx_kill_vid(struct net_device *netdev, __always_unused __be16 proto,
|
|||
|
||||
/* Disable pruning when VLAN 0 is the only VLAN rule */
|
||||
if (vsi->num_vlan == 1 && ice_vsi_is_vlan_pruning_ena(vsi))
|
||||
ret = ice_cfg_vlan_pruning(vsi, false, false);
|
||||
ret = ice_cfg_vlan_pruning(vsi, false);
|
||||
|
||||
set_bit(ICE_VSI_VLAN_FLTR_CHANGED, vsi->state);
|
||||
return ret;
|
||||
|
@ -5616,10 +5616,10 @@ ice_set_features(struct net_device *netdev, netdev_features_t features)
|
|||
|
||||
if ((features & NETIF_F_HW_VLAN_CTAG_FILTER) &&
|
||||
!(netdev->features & NETIF_F_HW_VLAN_CTAG_FILTER))
|
||||
ret = ice_cfg_vlan_pruning(vsi, true, false);
|
||||
ret = ice_cfg_vlan_pruning(vsi, true);
|
||||
else if (!(features & NETIF_F_HW_VLAN_CTAG_FILTER) &&
|
||||
(netdev->features & NETIF_F_HW_VLAN_CTAG_FILTER))
|
||||
ret = ice_cfg_vlan_pruning(vsi, false, false);
|
||||
ret = ice_cfg_vlan_pruning(vsi, false);
|
||||
|
||||
if ((features & NETIF_F_NTUPLE) &&
|
||||
!(netdev->features & NETIF_F_NTUPLE)) {
|
||||
|
|
|
@ -3072,7 +3072,10 @@ static int ice_vc_cfg_promiscuous_mode_msg(struct ice_vf *vf, u8 *msg)
|
|||
v_ret = VIRTCHNL_STATUS_ERR_PARAM;
|
||||
}
|
||||
|
||||
ret = ice_cfg_vlan_pruning(vsi, true, !rm_promisc);
|
||||
if (rm_promisc)
|
||||
ret = ice_cfg_vlan_pruning(vsi, true);
|
||||
else
|
||||
ret = ice_cfg_vlan_pruning(vsi, false);
|
||||
if (ret) {
|
||||
dev_err(dev, "Failed to configure VLAN pruning in promiscuous mode\n");
|
||||
v_ret = VIRTCHNL_STATUS_ERR_PARAM;
|
||||
|
@ -4277,7 +4280,7 @@ static int ice_vc_process_vlan_msg(struct ice_vf *vf, u8 *msg, bool add_v)
|
|||
/* Enable VLAN pruning when non-zero VLAN is added */
|
||||
if (!vlan_promisc && vid &&
|
||||
!ice_vsi_is_vlan_pruning_ena(vsi)) {
|
||||
status = ice_cfg_vlan_pruning(vsi, true, false);
|
||||
status = ice_cfg_vlan_pruning(vsi, true);
|
||||
if (status) {
|
||||
v_ret = VIRTCHNL_STATUS_ERR_PARAM;
|
||||
dev_err(dev, "Enable VLAN pruning on VLAN ID: %d failed error-%d\n",
|
||||
|
@ -4331,7 +4334,7 @@ static int ice_vc_process_vlan_msg(struct ice_vf *vf, u8 *msg, bool add_v)
|
|||
/* Disable VLAN pruning when only VLAN 0 is left */
|
||||
if (vsi->num_vlan == 1 &&
|
||||
ice_vsi_is_vlan_pruning_ena(vsi))
|
||||
ice_cfg_vlan_pruning(vsi, false, false);
|
||||
ice_cfg_vlan_pruning(vsi, false);
|
||||
|
||||
/* Disable Unicast/Multicast VLAN promiscuous mode */
|
||||
if (vlan_promisc) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче