net: aquantia: fix vlans not working over bridged network
authorDmitry Bogdanov <dmitry.bogdanov@aquantia.com>
Sat, 22 Jun 2019 08:46:37 +0000 (08:46 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 26 Jun 2019 20:16:45 +0000 (13:16 -0700)
commit48dd73d08d4dda47ee31cc8611fb16840fc16803
treead66e3687715511d84a27ba4c88be8f8ad8bb325
parent5b18f1289808fee5d04a7e6ecf200189f41a4db6
net: aquantia: fix vlans not working over bridged network

In configuration of vlan over bridge over aquantia device
it was found that vlan tagged traffic is dropped on chip.

The reason is that bridge device enables promisc mode,
but in atlantic chip vlan filters will still apply.
So we have to corellate promisc settings with vlan configuration.

The solution is to track in a separate state variable the
need of vlan forced promisc. And also consider generic
promisc configuration when doing vlan filter config.

Fixes: 7975d2aff5af ("net: aquantia: add support of rx-vlan-filter offload")
Signed-off-by: Dmitry Bogdanov <dmitry.bogdanov@aquantia.com>
Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/aquantia/atlantic/aq_filters.c
drivers/net/ethernet/aquantia/atlantic/aq_nic.c
drivers/net/ethernet/aquantia/atlantic/aq_nic.h
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c