DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Min Hu (Connor)" <humin29@huawei.com>
To: <dev@dpdk.org>
Cc: <ferruh.yigit@intel.com>, <andrew.rybchenko@oktetlabs.ru>
Subject: [dpdk-dev] [PATCH 1/8] net/hns3: fix residual MAC address entry
Date: Sat, 17 Jul 2021 10:02:49 +0800	[thread overview]
Message-ID: <1626487376-30038-2-git-send-email-humin29@huawei.com> (raw)
In-Reply-To: <1626487376-30038-1-git-send-email-humin29@huawei.com>

From: Chengchang Tang <tangchengchang@huawei.com>

Currently, even if we fail to remove the origin MAC address from the HW,
the set_default_mac will go on, and add the new MAC address to the HW.
Eventually cause the original MAC address entry to remain in the HW, and
users may receive unexpected packets.

This patch make set_default_mac return directly to failure if deleting
the original MAC address fails, simplifying the behavior of the driver
and solving the problem of residual MAC address entry.

Fixes: 7d7f9f80bbfb ("net/hns3: support MAC address related operations")
Cc: stable@dpdk.org

Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
---
 drivers/net/hns3/hns3_ethdev.c | 22 +++++++++-------------
 1 file changed, 9 insertions(+), 13 deletions(-)

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index 17b995a..3699b56 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -1748,7 +1748,6 @@ hns3_set_default_mac_addr(struct rte_eth_dev *dev,
 	struct rte_ether_addr *oaddr;
 	char mac_str[RTE_ETHER_ADDR_FMT_SIZE];
 	bool default_addr_setted;
-	bool rm_succes = false;
 	int ret, ret_val;
 
 	/*
@@ -1768,9 +1767,10 @@ hns3_set_default_mac_addr(struct rte_eth_dev *dev,
 					      oaddr);
 			hns3_warn(hw, "Remove old uc mac address(%s) fail: %d",
 				  mac_str, ret);
-			rm_succes = false;
-		} else
-			rm_succes = true;
+
+			rte_spinlock_unlock(&hw->lock);
+			return ret;
+		}
 	}
 
 	ret = hns3_add_uc_addr_common(hw, mac_addr);
@@ -1805,16 +1805,12 @@ hns3_set_default_mac_addr(struct rte_eth_dev *dev,
 	}
 
 err_add_uc_addr:
-	if (rm_succes) {
-		ret_val = hns3_add_uc_addr_common(hw, oaddr);
-		if (ret_val) {
-			hns3_ether_format_addr(mac_str, RTE_ETHER_ADDR_FMT_SIZE,
-					      oaddr);
-			hns3_warn(hw,
-				  "Failed to restore old uc mac addr(%s): %d",
+	ret_val = hns3_add_uc_addr_common(hw, oaddr);
+	if (ret_val) {
+		hns3_ether_format_addr(mac_str, RTE_ETHER_ADDR_FMT_SIZE, oaddr);
+		hns3_warn(hw, "Failed to restore old uc mac addr(%s): %d",
 				  mac_str, ret_val);
-			hw->mac.default_addr_setted = false;
-		}
+		hw->mac.default_addr_setted = false;
 	}
 	rte_spinlock_unlock(&hw->lock);
 
-- 
2.7.4


  reply	other threads:[~2021-07-17  2:03 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-17  2:02 [dpdk-dev] [PATCH 0/8] bugfix for hns3 PMD Min Hu (Connor)
2021-07-17  2:02 ` Min Hu (Connor) [this message]
2021-07-17  2:02 ` [dpdk-dev] [PATCH 2/8] net/hns3: delete unnecessary zero assignments Min Hu (Connor)
2021-07-17  2:02 ` [dpdk-dev] [PATCH 3/8] net/hns3: fix incorrect comment Min Hu (Connor)
2021-07-17  2:02 ` [dpdk-dev] [PATCH 4/8] net/hns3: fix the timing issue of clearing interrupt source Min Hu (Connor)
2021-07-17  2:02 ` [dpdk-dev] [PATCH 5/8] net/hns3: delete duplicate compile-time check Min Hu (Connor)
2021-07-17  2:02 ` [dpdk-dev] [PATCH 6/8] net/hns3: fix a print position about auto-negotiation Min Hu (Connor)
2021-07-17  2:02 ` [dpdk-dev] [PATCH 7/8] net/hns3: fix flow list separate management Min Hu (Connor)
2021-07-17  2:02 ` [dpdk-dev] [PATCH 8/8] net/hns3: fix Tx pkt prepare address when dev stop Min Hu (Connor)
2021-07-23 12:49 ` [dpdk-dev] [PATCH 0/8] bugfix for hns3 PMD Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1626487376-30038-2-git-send-email-humin29@huawei.com \
    --to=humin29@huawei.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).