Commit 4db2a5ef authored by Vladimir Oltean's avatar Vladimir Oltean Committed by Jakub Kicinski

net: dsa: fix dsa_port_vlan_filtering when global

The blamed refactoring commit changed a "port" iterator with "other_dp",
but still looked at the slave_dev of the dp outside the loop, instead of
other_dp->slave from the loop.

As a result, dsa_port_vlan_filtering() would not call
dsa_slave_manage_vlan_filtering() except for the port in cause, and not
for all switch ports as expected.

Fixes: d0004a02 ("net: dsa: remove the "dsa_to_port in a loop" antipattern from the core")
Reported-by: default avatarLucian Banu <Lucian.Banu@westermo.com>
Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 1e53834c
...@@ -799,7 +799,7 @@ int dsa_port_vlan_filtering(struct dsa_port *dp, bool vlan_filtering, ...@@ -799,7 +799,7 @@ int dsa_port_vlan_filtering(struct dsa_port *dp, bool vlan_filtering,
ds->vlan_filtering = vlan_filtering; ds->vlan_filtering = vlan_filtering;
dsa_switch_for_each_user_port(other_dp, ds) { dsa_switch_for_each_user_port(other_dp, ds) {
struct net_device *slave = dp->slave; struct net_device *slave = other_dp->slave;
/* We might be called in the unbind path, so not /* We might be called in the unbind path, so not
* all slave devices might still be registered. * all slave devices might still be registered.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment