net: dsa: mv88e6xxx: isolate unbridged ports
authorVivien Didelot <vivien.didelot@savoirfairelinux.com>
Wed, 4 Nov 2015 22:23:40 +0000 (17:23 -0500)
committerDavid S. Miller <davem@davemloft.net>
Thu, 5 Nov 2015 18:37:23 +0000 (13:37 -0500)
commite79a8bcb780314a555897a933d16553b80dbca1f
tree1f9d8c509ba98cabee1aaaf986f312ac8e062707
parentb3d8cf019fb9dd28389b08da7bf54ffabf453ed3
net: dsa: mv88e6xxx: isolate unbridged ports

The DSA documentation specifies that each port must be capable of
forwarding frames to the CPU port. The last changes on bridging support
for the mv88e6xxx driver broke this requirement for non-bridged ports.

So as for the bridged ports, reserve a few VLANs (4000+) in the switch
to isolate ports that have not been bridged yet.

By default, a port will be isolated with the CPU and DSA ports. When the
port joins a bridge, it will leave its reserved port. When it is removed
from a bridge, it will join its reserved VLAN again.

Fixes: 5fe7f68016ff ("net: dsa: mv88e6xxx: fix hardware bridging")
Reported-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/mv88e6171.c
drivers/net/dsa/mv88e6352.c
drivers/net/dsa/mv88e6xxx.c
drivers/net/dsa/mv88e6xxx.h