Thomas Bogendoerfer 04c679
From: Michael Chan <michael.chan@broadcom.com>
Thomas Bogendoerfer 04c679
Date: Thu, 26 Oct 2017 11:51:24 -0400
Thomas Bogendoerfer 04c679
Subject: bnxt_en: Optimize .ndo_set_mac_address() for VFs.
Thomas Bogendoerfer 04c679
Patch-mainline: v4.15-rc1
Thomas Bogendoerfer 04c679
Git-commit: c1a7bdff17247332ecff7f243e42d269b3f74c65
Thomas Bogendoerfer 04c679
References: bsc#1050242 FATE#322914
Thomas Bogendoerfer 04c679
Thomas Bogendoerfer 04c679
No need to call bnxt_approve_mac() which will send a message to the
Thomas Bogendoerfer 04c679
PF if the MAC address hasn't changed.
Thomas Bogendoerfer 04c679
Thomas Bogendoerfer 04c679
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Thomas Bogendoerfer 04c679
Signed-off-by: David S. Miller <davem@davemloft.net>
Thomas Bogendoerfer 04c679
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
Thomas Bogendoerfer 04c679
---
Thomas Bogendoerfer 04c679
 drivers/net/ethernet/broadcom/bnxt/bnxt.c |    6 +++---
Thomas Bogendoerfer 04c679
 1 file changed, 3 insertions(+), 3 deletions(-)
Thomas Bogendoerfer 04c679
Thomas Bogendoerfer 04c679
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
Thomas Bogendoerfer 04c679
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
Thomas Bogendoerfer 04c679
@@ -7251,13 +7251,13 @@ static int bnxt_change_mac_addr(struct n
Thomas Bogendoerfer 04c679
 	if (!is_valid_ether_addr(addr->sa_data))
Thomas Bogendoerfer 04c679
 		return -EADDRNOTAVAIL;
Thomas Bogendoerfer 04c679
 
Thomas Bogendoerfer 04c679
+	if (ether_addr_equal(addr->sa_data, dev->dev_addr))
Thomas Bogendoerfer 04c679
+		return 0;
Thomas Bogendoerfer 04c679
+
Thomas Bogendoerfer 04c679
 	rc = bnxt_approve_mac(bp, addr->sa_data);
Thomas Bogendoerfer 04c679
 	if (rc)
Thomas Bogendoerfer 04c679
 		return rc;
Thomas Bogendoerfer 04c679
 
Thomas Bogendoerfer 04c679
-	if (ether_addr_equal(addr->sa_data, dev->dev_addr))
Thomas Bogendoerfer 04c679
-		return 0;
Thomas Bogendoerfer 04c679
-
Thomas Bogendoerfer 04c679
 	memcpy(dev->dev_addr, addr->sa_data, dev->addr_len);
Thomas Bogendoerfer 04c679
 	if (netif_running(dev)) {
Thomas Bogendoerfer 04c679
 		bnxt_close_nic(bp, false, false);