ice: Restore fix disabling RX VLAN filtering
[ Upstream commit 4e7f0087b058cc3cab8f3c32141b51aa5457d298 ] Fix setting dis_rx_filtering depending on whether port vlan is being turned on or off. This was originally fixed in commit c793f8ea15e3 ("ice: Fix disabling Rx VLAN filtering with port VLAN enabled"), but while refactoring ice_vf_vsi_init_vlan_ops(), the fix has been lost. Restore the fix along with the original comment from that change. Also delete duplicate lines in ice_port_vlan_on(). Fixes: 2946204b3fa8 ("ice: implement bridge port vlan") Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com> Signed-off-by: Marcin Szycik <marcin.szycik@linux.intel.com> Reviewed-by: Simon Horman <horms@kernel.org> Tested-by: Rafal Romanowski <rafal.romanowski@intel.com> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
33755da7ae
commit
2442e9cbb7
@ -32,7 +32,6 @@ static void ice_port_vlan_on(struct ice_vsi *vsi)
|
||||
/* setup outer VLAN ops */
|
||||
vlan_ops->set_port_vlan = ice_vsi_set_outer_port_vlan;
|
||||
vlan_ops->clear_port_vlan = ice_vsi_clear_outer_port_vlan;
|
||||
vlan_ops->clear_port_vlan = ice_vsi_clear_outer_port_vlan;
|
||||
|
||||
/* setup inner VLAN ops */
|
||||
vlan_ops = &vsi->inner_vlan_ops;
|
||||
@ -47,8 +46,13 @@ static void ice_port_vlan_on(struct ice_vsi *vsi)
|
||||
|
||||
vlan_ops->set_port_vlan = ice_vsi_set_inner_port_vlan;
|
||||
vlan_ops->clear_port_vlan = ice_vsi_clear_inner_port_vlan;
|
||||
vlan_ops->clear_port_vlan = ice_vsi_clear_inner_port_vlan;
|
||||
}
|
||||
|
||||
/* all Rx traffic should be in the domain of the assigned port VLAN,
|
||||
* so prevent disabling Rx VLAN filtering
|
||||
*/
|
||||
vlan_ops->dis_rx_filtering = noop_vlan;
|
||||
|
||||
vlan_ops->ena_rx_filtering = ice_vsi_ena_rx_vlan_filtering;
|
||||
}
|
||||
|
||||
@ -77,6 +81,8 @@ static void ice_port_vlan_off(struct ice_vsi *vsi)
|
||||
vlan_ops->del_vlan = ice_vsi_del_vlan;
|
||||
}
|
||||
|
||||
vlan_ops->dis_rx_filtering = ice_vsi_dis_rx_vlan_filtering;
|
||||
|
||||
if (!test_bit(ICE_FLAG_VF_VLAN_PRUNING, pf->flags))
|
||||
vlan_ops->ena_rx_filtering = noop_vlan;
|
||||
else
|
||||
@ -141,7 +147,6 @@ void ice_vf_vsi_init_vlan_ops(struct ice_vsi *vsi)
|
||||
&vsi->outer_vlan_ops : &vsi->inner_vlan_ops;
|
||||
|
||||
vlan_ops->add_vlan = ice_vsi_add_vlan;
|
||||
vlan_ops->dis_rx_filtering = ice_vsi_dis_rx_vlan_filtering;
|
||||
vlan_ops->ena_tx_filtering = ice_vsi_ena_tx_vlan_filtering;
|
||||
vlan_ops->dis_tx_filtering = ice_vsi_dis_tx_vlan_filtering;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user