1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/net/dsa/microchip
Vladimir Oltean 15f7cfae91 net: dsa: microchip: make learning configurable and keep it off while standalone
Address learning should initially be turned off by the driver for port
operation in standalone mode, then the DSA core handles changes to it
via ds->ops->port_bridge_flags().

Leaving address learning enabled while ports are standalone breaks any
kind of communication which involves port B receiving what port A has
sent. Notably it breaks the ksz9477 driver used with a (non offloaded,
ports act as if standalone) bonding interface in active-backup mode,
when the ports are connected together through external switches, for
redundancy purposes.

This fixes a major design flaw in the ksz9477 and ksz8795 drivers, which
unconditionally leave address learning enabled even while ports operate
as standalone.

Fixes: b987e98e50 ("dsa: add DSA switch driver for Microchip KSZ9477")
Link: https://lore.kernel.org/netdev/CAFZh4h-JVWt80CrQWkFji7tZJahMfOToUJQgKS5s0_=9zzpvYQ@mail.gmail.com/
Reported-by: Brian Hutchinson <b.hutchman@gmail.com>
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Link: https://lore.kernel.org/r/20220818164809.3198039-1-vladimir.oltean@nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-08-23 14:36:56 -07:00
..
Kconfig net: dsa: microchip: add DSA support for microchip LAN937x 2022-07-02 16:34:05 +01:00
ksz8.h net: dsa: microchip: remove the struct ksz8 2022-06-29 13:47:59 +01:00
ksz8795.c net: dsa: microchip: add support for phylink mac config 2022-07-27 09:39:17 +01:00
ksz8795_reg.h net: dsa: microchip: ksz8795: use common xmii function 2022-07-27 09:39:17 +01:00
ksz8863_smi.c net: dsa: microchip: remove the struct ksz8 2022-06-29 13:47:59 +01:00
ksz9477.c net: dsa: microchip: ksz9477: fix fdb_dump last invalid entry 2022-08-17 12:09:01 -07:00
ksz9477.h net: dsa: microchip: move ksz_dev_ops to ksz_common.c 2022-06-24 11:31:44 +01:00
ksz9477_i2c.c net: dsa: microchip: remove the ksz8/ksz9477_switch_register 2022-06-24 11:31:44 +01:00
ksz9477_reg.h net: dsa: microchip: ksz9477: use common xmii function 2022-07-27 09:39:17 +01:00
ksz_common.c net: dsa: microchip: make learning configurable and keep it off while standalone 2022-08-23 14:36:56 -07:00
ksz_common.h net: dsa: microchip: make learning configurable and keep it off while standalone 2022-08-23 14:36:56 -07:00
ksz_spi.c net: dsa: microchip: fix Clang -Wunused-const-variable warning on 'ksz_dt_ids' 2022-07-18 11:29:30 +01:00
lan937x.h net: dsa: microchip: add support for phylink mac config 2022-07-27 09:39:17 +01:00
lan937x_main.c net: dsa: microchip: add support for phylink mac config 2022-07-27 09:39:17 +01:00
lan937x_reg.h net: dsa: microchip: apply rgmii tx and rx delay in phylink mac config 2022-07-27 09:39:17 +01:00
Makefile net: dsa: microchip: add DSA support for microchip LAN937x 2022-07-02 16:34:05 +01:00