| From 44d5336842732c60ce9b01337e2747ce7020b988 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 19 Jul 2021 17:13:08 +0800 |
| Subject: net: hns3: fix rx VLAN offload state inconsistent issue |
| |
| From: Jian Shen <shenjian15@huawei.com> |
| |
| [ Upstream commit bbfd4506f962e7e6fff8f37f017154a3c3791264 ] |
| |
| Currently, VF doesn't enable rx VLAN offload when initializating, |
| and PF does it for VFs. If user disable the rx VLAN offload for |
| VF with ethtool -K, and reload the VF driver, it may cause the |
| rx VLAN offload state being inconsistent between hardware and |
| software. |
| |
| Fixes it by enabling rx VLAN offload when VF initializing. |
| |
| Fixes: e2cb1dec9779 ("net: hns3: Add HNS3 VF HCL(Hardware Compatibility Layer) Support") |
| Signed-off-by: Jian Shen <shenjian15@huawei.com> |
| Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com> |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| .../net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 10 ++++++++++ |
| 1 file changed, 10 insertions(+) |
| |
| diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c |
| index 0db51ef15ef6..fe03c8419890 100644 |
| --- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c |
| +++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c |
| @@ -2621,6 +2621,16 @@ static int hclgevf_rss_init_hw(struct hclgevf_dev *hdev) |
| |
| static int hclgevf_init_vlan_config(struct hclgevf_dev *hdev) |
| { |
| + struct hnae3_handle *nic = &hdev->nic; |
| + int ret; |
| + |
| + ret = hclgevf_en_hw_strip_rxvtag(nic, true); |
| + if (ret) { |
| + dev_err(&hdev->pdev->dev, |
| + "failed to enable rx vlan offload, ret = %d\n", ret); |
| + return ret; |
| + } |
| + |
| return hclgevf_set_vlan_filter(&hdev->nic, htons(ETH_P_8021Q), 0, |
| false); |
| } |
| -- |
| 2.30.2 |
| |