mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-10 12:57:06 +09:00
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 commitc793f8ea15("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:2946204b3f("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:
committed by
Greg Kroah-Hartman
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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user