net: dsa: mt7530: set CPU port to fallback mode
authorDENG Qingfang <dqfext@gmail.com>
Wed, 13 May 2020 15:37:17 +0000 (23:37 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 7 Jun 2020 11:18:48 +0000 (13:18 +0200)
commit63ad3fb06834e0ee4eeedfb32c98eaa6dddb9690
treef8bd2189562e66ea7de9a387c2e1e96e3fd62ee1
parentd628f7a59e1cf542355e9402ce07f51c6b17d929
net: dsa: mt7530: set CPU port to fallback mode

commit 38152ea37d8bdaffa22603e0a5b5b86cfa8714c9 upstream.

Currently, setting a bridge's self PVID to other value and deleting
the default VID 1 renders untagged ports of that VLAN unable to talk to
the CPU port:

bridge vlan add dev br0 vid 2 pvid untagged self
bridge vlan del dev br0 vid 1 self
bridge vlan add dev sw0p0 vid 2 pvid untagged
bridge vlan del dev sw0p0 vid 1
# br0 cannot send untagged frames out of sw0p0 anymore

That is because the CPU port is set to security mode and its PVID is
still 1, and untagged frames are dropped due to VLAN member violation.

Set the CPU port to fallback mode so untagged frames can pass through.

Fixes: 83163f7dca56 ("net: dsa: mediatek: add VLAN support for MT7530")
Signed-off-by: DENG Qingfang <dqfext@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/dsa/mt7530.c
drivers/net/dsa/mt7530.h