58 lines
2.2 KiB
Diff
58 lines
2.2 KiB
Diff
From 6342321447769074b8dbecec431e44c399090881 Mon Sep 17 00:00:00 2001
|
|
From: Guangbin Huang <huangguangbin2@huawei.com>
|
|
Date: Mon, 15 Nov 2021 19:40:56 +0800
|
|
Subject: [PATCH 132/283] net: hns3: fix always enable rx vlan filter problem
|
|
after selftest
|
|
|
|
mainline inclusion
|
|
from mainline-v5.15-rc4
|
|
commit 27bf4af69fcb9845fb2f0076db5d562ec072e70f
|
|
category: bugfix
|
|
bugzilla: https://gitee.com/src-openeuler/kernel/issues/I8EMYT
|
|
|
|
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=27bf4af69fcb9845fb2f0076db5d562ec072e70f
|
|
|
|
--------------------------------
|
|
|
|
[ Upstream commit 27bf4af69fcb9845fb2f0076db5d562ec072e70f ]
|
|
|
|
Currently, the rx vlan filter will always be disabled before selftest and
|
|
be enabled after selftest as the rx vlan filter feature is fixed on in
|
|
old device earlier than V3.
|
|
|
|
However, this feature is not fixed in some new devices and it can be
|
|
disabled by user. In this case, it is wrong if rx vlan filter is enabled
|
|
after selftest. So fix it.
|
|
|
|
Fixes: bcc26e8dc432 ("net: hns3: remove unused code in hns3_self_test()")
|
|
Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
|
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
Signed-off-by: Sasha Levin <sashal@kernel.org>
|
|
Signed-off-by: Chen Jun <chenjun102@huawei.com>
|
|
Acked-by: Weilong Chen <chenweilong@huawei.com>
|
|
|
|
Signed-off-by: Chen Jun <chenjun102@huawei.com>
|
|
Signed-off-by: Zheng Zengkai <zhengzengkai@huawei.com>
|
|
Signed-off-by: Xiaodong Li <lixiaodong67@huawei.com>
|
|
---
|
|
drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c b/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c
|
|
index f54d00a1e150..1624df0ac6e4 100644
|
|
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c
|
|
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c
|
|
@@ -368,7 +368,8 @@ static void hns3_selftest_restore(struct net_device *ndev, bool if_running)
|
|
h->ae_algo->ops->halt_autoneg(h, false);
|
|
|
|
#if IS_ENABLED(CONFIG_VLAN_8021Q)
|
|
- if (h->ae_algo->ops->enable_vlan_filter)
|
|
+ if (h->ae_algo->ops->enable_vlan_filter &&
|
|
+ ndev->features & NETIF_F_HW_VLAN_CTAG_FILTER)
|
|
h->ae_algo->ops->enable_vlan_filter(h, true);
|
|
#endif
|
|
|
|
--
|
|
2.34.1
|
|
|