Commit 3e0b5971 authored by Brett Creeley's avatar Brett Creeley Committed by Tony Nguyen
Browse files

ice: Add helper function for adding VLAN 0



There are multiple places where VLAN 0 is being added. Create a function
to be called in order to minimize changes as the implementation is expanded
to support double VLAN and avoid duplicated code.

Signed-off-by: default avatarBrett Creeley <brett.creeley@intel.com>
Tested-by: default avatarGurucharan G <gurucharanx.g@intel.com>
Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
parent daf4dd16
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -126,7 +126,7 @@ static int ice_eswitch_setup_env(struct ice_pf *pf)
	__dev_mc_unsync(uplink_netdev, NULL);
	netif_addr_unlock_bh(uplink_netdev);

	if (ice_vsi_add_vlan(uplink_vsi, 0, ICE_FWD_TO_VSI))
	if (ice_vsi_add_vlan_zero(uplink_vsi))
		goto err_def_rx;

	if (!ice_is_dflt_vsi_in_use(uplink_vsi->vsw)) {
@@ -230,7 +230,7 @@ static int ice_eswitch_setup_reprs(struct ice_pf *pf)
			goto err;
		}

		if (ice_vsi_add_vlan(vsi, 0, ICE_FWD_TO_VSI)) {
		if (ice_vsi_add_vlan_zero(vsi)) {
			ice_fltr_add_mac_and_broadcast(vsi,
						       vf->hw_lan_addr.addr,
						       ICE_FWD_TO_VSI);
+10 −1
Original line number Diff line number Diff line
@@ -2663,7 +2663,7 @@ ice_vsi_setup(struct ice_pf *pf, struct ice_port_info *pi,
		 * so this handles those cases (i.e. adding the PF to a bridge
		 * without the 8021q module loaded).
		 */
		ret = ice_vsi_add_vlan(vsi, 0, ICE_FWD_TO_VSI);
		ret = ice_vsi_add_vlan_zero(vsi);
		if (ret)
			goto unroll_clear_rings;

@@ -4111,6 +4111,15 @@ int ice_set_link(struct ice_vsi *vsi, bool ena)
	return 0;
}

/**
 * ice_vsi_add_vlan_zero - add VLAN 0 filter(s) for this VSI
 * @vsi: VSI used to add VLAN filters
 */
int ice_vsi_add_vlan_zero(struct ice_vsi *vsi)
{
	return ice_vsi_add_vlan(vsi, 0, ICE_FWD_TO_VSI);
}

/**
 * ice_is_feature_supported
 * @pf: pointer to the struct ice_pf instance
+1 −1
Original line number Diff line number Diff line
@@ -132,7 +132,7 @@ void ice_vsi_ctx_clear_antispoof(struct ice_vsi_ctx *ctx);
void ice_vsi_ctx_set_allow_override(struct ice_vsi_ctx *ctx);

void ice_vsi_ctx_clear_allow_override(struct ice_vsi_ctx *ctx);

int ice_vsi_add_vlan_zero(struct ice_vsi *vsi);
bool ice_is_feature_supported(struct ice_pf *pf, enum ice_feature f);
void ice_clear_feature_support(struct ice_pf *pf, enum ice_feature f);
void ice_init_feature_support(struct ice_pf *pf);
+1 −1
Original line number Diff line number Diff line
@@ -1857,7 +1857,7 @@ static int ice_init_vf_vsi_res(struct ice_vf *vf)
	if (!vsi)
		return -ENOMEM;

	err = ice_vsi_add_vlan(vsi, 0, ICE_FWD_TO_VSI);
	err = ice_vsi_add_vlan_zero(vsi);
	if (err) {
		dev_warn(dev, "Failed to add VLAN 0 filter for VF %d\n",
			 vf->vf_id);