On 9/23/20 3:58 PM, Vladimir Oltean wrote: > On Wed, Sep 23, 2020 at 03:54:59PM -0700, Florian Fainelli wrote: >> Not having much luck with using __vlan_find_dev_deep_rcu() for a reason >> I don't understand we trip over the proto value being neither of the two >> support Ethertype and hit the BUG(). >> >> + upper_dev = __vlan_find_dev_deep_rcu(br, htons(proto), vid); >> + if (upper_dev) >> + return skb; >> >> Any ideas? > > Damn... > Yes, of course, the skb->protocol is still ETH_P_XDSA which is where > eth_type_trans() on the master left it.
proto was obtained from br_vlan_get_proto() a few lines above, and br_vlan_get_proto() just returns br->vlan_proto which defaults to htons(ETH_P_8021Q) from br_vlan_init(). This is not skb->protocol that we are looking at AFAICT. -- Florian