]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: hns3: Preserve vlan 0 in hardware table
authorYunsheng Lin <linyunsheng@huawei.com>
Mon, 3 Sep 2018 10:21:52 +0000 (11:21 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Nov 2018 19:12:26 +0000 (11:12 -0800)
[ Upstream commit daaa8521760ee4d4e65f309c4c37b3a1e58c9d4e ]

When netdev is down, the stack will delete the vlan from
hardware including vlan0, which will cause problem when
doing loopback selftest when netdev is down.

This patch fixes it by always preserving vlan 0 in hardware,
because vlan 0 is defalut vlan, which should always be in
hardware.

Fixes: c39c4d98dc65 ("net: hns3: Add mac loopback selftest support in hns3 driver")
Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c

index 73b04e11ec0b9255f64fbd5cec708764b7ff3654..867f27106a024f40f1f2c2239db57b72134db342 100644 (file)
@@ -4732,6 +4732,9 @@ static int hclge_set_vlan_filter_hw(struct hclge_dev *hdev, __be16 proto,
        u16 vport_idx, vport_num = 0;
        int ret;
 
+       if (is_kill && !vlan_id)
+               return 0;
+
        ret = hclge_set_vf_vlan_common(hdev, vport_id, is_kill, vlan_id,
                                       0, proto);
        if (ret) {