net: dsa: Utilize __vlan_find_dev_deep_rcu()
authorFlorian Fainelli <f.fainelli@gmail.com>
Fri, 2 Oct 2020 02:42:15 +0000 (19:42 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 2 Oct 2020 20:36:07 +0000 (13:36 -0700)
commit3a68844dd2d8b3fd23f92894b6628e02a530b445
treea75b5229db47acc061133db3c00e7825d32e40f9
parenta348292b63156290e72e2df2f724833607d1e403
net: dsa: Utilize __vlan_find_dev_deep_rcu()

Now that we are guaranteed that dsa_untag_bridge_pvid() is called after
eth_type_trans() we can utilize __vlan_find_dev_deep_rcu() which will
take care of finding an 802.1Q upper on top of a bridge master.

A common use case, prior to 12a1526d067 ("net: dsa: untag the bridge
pvid from rx skbs") was to configure a bridge 802.1Q upper like this:

ip link add name br0 type bridge vlan_filtering 0
ip link add link br0 name br0.1 type vlan id 1

in order to pop the default_pvid VLAN tag.

With this change we restore that behavior while still allowing the DSA
receive path to automatically pop the VLAN tag.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/dsa_priv.h