]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
net: usb: lan78xx: disable VLAN filter in promiscuous mode
authorEnrico Pozzobon <enrico.pozzobon@dissecto.com>
Wed, 1 Jul 2026 14:47:23 +0000 (16:47 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 7 Jul 2026 11:07:51 +0000 (13:07 +0200)
commit60444706aa17616efc03190d099ac347e28b3d0a
tree9553095845753edff48333bf9060938a70483e1a
parent7993211bde166471dffac074dc965489f86531f8
net: usb: lan78xx: disable VLAN filter in promiscuous mode

The hardware VLAN filter (RFE_CTL_VLAN_FILTER_) drops VLAN-tagged frames
whose VID has not been registered via lan78xx_vlan_rx_add_vid(). It is
left enabled in promiscuous mode, so packet capture (e.g. tcpdump or
Wireshark) does not see tagged frames for unregistered VIDs.

Clear the filter while the interface is promiscuous and restore it from
NETIF_F_HW_VLAN_CTAG_FILTER otherwise. Enforce the same condition in
lan78xx_set_features() so netdev_update_features() cannot re-enable the
filter while promiscuous.

Fixes: 55d7de9de6c3 ("Microchip's LAN7800 family USB 2/3 to 10/100/1000 Ethernet device driver")
Signed-off-by: Enrico Pozzobon <enrico.pozzobon@dissecto.com>
Reviewed-by: Nicolai Buchwitz <nb@tipi-net.de>
Link: https://patch.msgid.link/20260701-lan78xx-vlan-promisc-v3-1-232266d32743@dissecto.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/usb/lan78xx.c