mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-07-24 01:54:03 -04:00
Currently, when we add the first sja1105 port to a bridge with
vlan_filtering 1, then we sometimes see this output:
sja1105 spi2.2: port 4 failed to read back entry for be:79:b4:9e:9e:96 vid 3088: -ENOENT
sja1105 spi2.2: Reset switch and programmed static config. Reason: VLAN filtering
sja1105 spi2.2: port 0 failed to add be:79:b4:9e:9e:96 vid 0 to fdb: -2
It is because sja1105_fdb_add() runs from the dsa_owq which is no longer
serialized with switch resets since it dropped the rtnl_lock() in the
blamed commit.
Either performing the FDB accesses before the reset, or after the reset,
is equally fine, because sja1105_static_fdb_change() backs up those
changes in the static config, but FDB access during reset isn't ok.
Make sja1105_static_config_reload() take the fdb_lock to fix that.
Fixes:
|
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
sja1105.h | ||
sja1105_clocking.c | ||
sja1105_devlink.c | ||
sja1105_dynamic_config.c | ||
sja1105_dynamic_config.h | ||
sja1105_ethtool.c | ||
sja1105_flower.c | ||
sja1105_main.c | ||
sja1105_mdio.c | ||
sja1105_ptp.c | ||
sja1105_ptp.h | ||
sja1105_spi.c | ||
sja1105_static_config.c | ||
sja1105_static_config.h | ||
sja1105_tas.c | ||
sja1105_tas.h | ||
sja1105_vl.c | ||
sja1105_vl.h |