From: Dmitry Bogdanov Date: Fri, 30 Aug 2019 12:08:30 +0000 (+0000) Subject: net: aquantia: fix removal of vlan 0 X-Git-Tag: v5.2.17~23 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=6a6e09b7a51913d7ce65983b2b821905b2ed6d28;p=users%2Fdwmw2%2Flinux.git net: aquantia: fix removal of vlan 0 [ Upstream commit 6fdc060d7476ef73c8029b652d252c1a7b4de948 ] Due to absence of checking against the rx flow rule when vlan 0 is being removed, the other rule could be removed instead of the rule with vlan 0 Fixes: 7975d2aff5afb ("net: aquantia: add support of rx-vlan-filter offload") Signed-off-by: Dmitry Bogdanov Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_filters.c b/drivers/net/ethernet/aquantia/atlantic/aq_filters.c index 2c1111a7fc435..3dbf3ff1c4506 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_filters.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_filters.c @@ -431,7 +431,8 @@ int aq_del_fvlan_by_vlan(struct aq_nic_s *aq_nic, u16 vlan_id) if (be16_to_cpu(rule->aq_fsp.h_ext.vlan_tci) == vlan_id) break; } - if (rule && be16_to_cpu(rule->aq_fsp.h_ext.vlan_tci) == vlan_id) { + if (rule && rule->type == aq_rx_filter_vlan && + be16_to_cpu(rule->aq_fsp.h_ext.vlan_tci) == vlan_id) { struct ethtool_rxnfc cmd; cmd.fs.location = rule->aq_fsp.location;