net/hns3: fix duplicated VLAN entry
authorMin Hu (Connor) <humin29@huawei.com>
Fri, 22 Nov 2019 12:06:24 +0000 (20:06 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 26 Nov 2019 17:05:15 +0000 (18:05 +0100)
When setting vlan, hns3 driver will add vlan entry to vlan linked list
each time, and this is unreasonable.

This patch adds a check whether the VLAN to be added already exists
in the linked list and prevents adding duplicated vlan.

Fixes: 411d23b9eafb ("net/hns3: support VLAN")
Cc: stable@dpdk.org
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
drivers/net/hns3/hns3_ethdev.c

index 3435bce..7231571 100644 (file)
@@ -282,6 +282,11 @@ hns3_add_dev_vlan_table(struct hns3_adapter *hns, uint16_t vlan_id,
        struct hns3_hw *hw = &hns->hw;
        struct hns3_pf *pf = &hns->pf;
 
+       LIST_FOREACH(vlan_entry, &pf->vlan_list, next) {
+               if (vlan_entry->vlan_id == vlan_id)
+                       return;
+       }
+
        vlan_entry = rte_zmalloc("hns3_vlan_tbl", sizeof(*vlan_entry), 0);
        if (vlan_entry == NULL) {
                hns3_err(hw, "Failed to malloc hns3 vlan table");