From: "Min Hu (Connor)" <[email protected]>
When setting duplicate vlan, hns3 driver will also add vlan entry
to vlan linked list, and this is unreasonable.
This patch adds checking whether the VLAN to be added already exists
in the linked list and preventing adding duplicate vlan.
Fixes: 411d23b9eafb ("net/hns3: support VLAN")
Cc: [email protected]
Signed-off-by: Min Hu (Connor) <[email protected]>
Signed-off-by: Wei Hu (Xavier) <[email protected]>
---
drivers/net/hns3/hns3_ethdev.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index 3435bce26..72315718a 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -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");
--
2.23.0