Message ID | 20231107135138.10692-1-marcin.szycik@linux.intel.com (mailing list archive) |
---|---|
State | Awaiting Upstream |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [iwl-net] ice: Restore fix disabling RX VLAN filtering | expand |
On Tue, Nov 07, 2023 at 02:51:38PM +0100, Marcin Szycik wrote: > 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>
> -----Original Message----- > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of > Simon Horman > Sent: Thursday, November 9, 2023 6:25 PM > To: Marcin Szycik <marcin.szycik@linux.intel.com> > Cc: Drewek, Wojciech <wojciech.drewek@intel.com>; > netdev@vger.kernel.org; intel-wired-lan@lists.osuosl.org > Subject: Re: [Intel-wired-lan] [PATCH iwl-net] ice: Restore fix disabling RX > VLAN filtering > > On Tue, Nov 07, 2023 at 02:51:38PM +0100, Marcin Szycik wrote: > > 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> > > _______________________________________________ > Intel-wired-lan mailing list > Intel-wired-lan@osuosl.org > https://lists.osuosl.org/mailman/listinfo/intel-wired-lan Tested-by: Rafal Romanowski <rafal.romanowski@intel.com>
diff --git a/drivers/net/ethernet/intel/ice/ice_vf_vsi_vlan_ops.c b/drivers/net/ethernet/intel/ice/ice_vf_vsi_vlan_ops.c index d7b10dc67f03..80dc4bcdd3a4 100644 --- a/drivers/net/ethernet/intel/ice/ice_vf_vsi_vlan_ops.c +++ b/drivers/net/ethernet/intel/ice/ice_vf_vsi_vlan_ops.c @@ -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; }