]> git.baikalelectronics.ru Git - kernel.git/commit
net: dsa: Advertise the VLAN offload netdev ability only if switch supports it
authorVladimir Oltean <olteanv@gmail.com>
Sun, 25 Aug 2019 19:46:29 +0000 (22:46 +0300)
committerDavid S. Miller <davem@davemloft.net>
Wed, 28 Aug 2019 03:46:26 +0000 (20:46 -0700)
commit44e6431d8b29fac43c8653e299925b82c8e1d7e4
treeb10547c560e9d999a3772b9ebc1171f6ae88c658
parenta18a53a793a583b56efa0950332fc94e206b602f
net: dsa: Advertise the VLAN offload netdev ability only if switch supports it

When adding a VLAN sub-interface on a DSA slave port, the 8021q core
checks NETIF_F_HW_VLAN_CTAG_FILTER and, if the netdev is capable of
filtering, calls .ndo_vlan_rx_add_vid or .ndo_vlan_rx_kill_vid to
configure the VLAN offloading.

DSA sets this up counter-intuitively: it always advertises this netdev
feature, but the underlying driver may not actually support VLAN table
manipulation. In that case, the DSA core is forced to ignore the error,
because not being able to offload the VLAN is still fine - and should
result in the creation of a non-accelerated VLAN sub-interface.

Change this so that the netdev feature is only advertised for switch
drivers that support VLAN manipulation, instead of checking for
-EOPNOTSUPP at runtime.

Suggested-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Vladimir Oltean <olteanv@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/slave.c