]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
net: hns3: check vlan id before using it
authorliaoguojia <liaoguojia@huawei.com>
Wed, 15 Sep 2021 13:52:10 +0000 (21:52 +0800)
committerStefan Bader <stefan.bader@canonical.com>
Fri, 5 Nov 2021 09:20:36 +0000 (10:20 +0100)
BugLink: https://bugs.launchpad.net/bugs/1949640
[ Upstream commit ef39d632608e66f428c1246836fd060cf4818d67 ]

The input parameters may not be reliable, so check the vlan id before
using it, otherwise may set wrong vlan id into hardware.

Fixes: dc8131d846d4 ("net: hns3: Fix for packet loss due wrong filter config in VLAN tbls")
Signed-off-by: liaoguojia <liaoguojia@huawei.com>
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: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c

index 4bff001e6b3f794055432ad28eccf5b8dfdd0d4a..318307a78f38d1d7dd92b1d47c0e5e9fcdcd154c 100644 (file)
@@ -8922,6 +8922,9 @@ static int hclge_set_vlan_filter_hw(struct hclge_dev *hdev, __be16 proto,
        if (is_kill && !vlan_id)
                return 0;
 
+       if (vlan_id >= VLAN_N_VID)
+               return -EINVAL;
+
        ret = hclge_set_vf_vlan_common(hdev, vport_id, is_kill, vlan_id,
                                       proto);
        if (ret) {