bianbu-linux-6.6/drivers/net/dsa/sja1105
Vladimir Oltean 86899e9e1e net: dsa: sja1105: block FDB accesses that are concurrent with a switch reset
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: 0faf890fc5 ("net: dsa: drop rtnl_lock from dsa_slave_switchdev_event_work")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2023-09-11 08:32:30 +01:00
..
Kconfig ethernet: fix PTP_1588_CLOCK dependencies 2021-08-13 17:49:05 -07:00
Makefile net: dsa: sja1105: register the MDIO buses for 100base-T1 and 100base-TX 2021-06-08 14:37:16 -07:00
sja1105.h net: dsa: sja1105: serialize sja1105_port_mcast_flood() with other FDB accesses 2023-09-11 08:32:30 +01:00
sja1105_clocking.c net: dsa: sja1105: parse {rx, tx}-internal-delay-ps properties for RGMII delays 2021-10-20 11:32:28 +01:00
sja1105_devlink.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-12-08 18:19:59 -08:00
sja1105_dynamic_config.c net: dsa: sja1105: fix multicast forwarding working only for last added mdb entry 2023-09-11 08:32:30 +01:00
sja1105_dynamic_config.h net: dsa: sja1105: add support for the SJA1110 switch family 2021-06-08 14:37:16 -07:00
sja1105_ethtool.c net: dsa: sja1105: don't use burst SPI reads for port statistics 2021-05-21 14:01:41 -07:00
sja1105_flower.c net: flow_dissector: Use 64bits for used_keys 2023-07-31 09:11:24 +01:00
sja1105_main.c net: dsa: sja1105: block FDB accesses that are concurrent with a switch reset 2023-09-11 08:32:30 +01:00
sja1105_mdio.c net: dsa: sja1105: use xpcs_create_mdiodev() 2023-06-05 11:26:02 +01:00
sja1105_ptp.c net: dsa: sja1105: always enable the send_meta options 2023-07-04 19:42:27 +01:00
sja1105_ptp.h Revert "net: dsa: move sja1110_process_meta_tstamp inside the tagging protocol driver" 2021-12-12 12:51:34 +00:00
sja1105_spi.c net: dsa: sja1105: complete tc-cbs offload support on SJA1110 2023-09-06 06:23:05 +01:00
sja1105_static_config.c net: update NXP copyright text 2021-09-17 13:52:17 +01:00
sja1105_static_config.h net: update NXP copyright text 2021-09-17 13:52:17 +01:00
sja1105_tas.c net/sched: taprio: replace tc_taprio_qopt_offload :: enable with a "cmd" enum 2023-05-31 10:00:30 +01:00
sja1105_tas.h net: dsa: sja1105: dimension the data structures for a larger port count 2021-05-24 13:59:03 -07:00
sja1105_vl.c net: dsa: tag_8021q: rename dsa_8021q_bridge_tx_fwd_offload_vid 2022-02-27 11:06:14 +00:00
sja1105_vl.h net: update NXP copyright text 2021-09-17 13:52:17 +01:00