Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

wireless: use eth_hw_addr_set() instead of ether_addr_copy()

Commit 406f42fa0d3c ("net-next: When a bond have a massive amount
of VLANs...") introduced a rbtree for faster Ethernet address look
up. To maintain netdev->dev_addr in this tree we need to make all
the writes to it got through appropriate helpers.

Convert wireless from ether_addr_copy() to eth_hw_addr_set():

@@
expression dev, np;
@@
- ether_addr_copy(dev->dev_addr, np)
+ eth_hw_addr_set(dev, np)

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20211018235021.1279697-3-kuba@kernel.org

authored by

Jakub Kicinski and committed by
Kalle Valo
fcb79f31 708884e7

+7 -7
+2 -2
drivers/net/wireless/ath/wil6210/cfg80211.c
··· 723 723 ndev = vif_to_ndev(vif); 724 724 ether_addr_copy(ndev->perm_addr, ndev_main->perm_addr); 725 725 if (is_valid_ether_addr(params->macaddr)) { 726 - ether_addr_copy(ndev->dev_addr, params->macaddr); 726 + eth_hw_addr_set(ndev, params->macaddr); 727 727 } else { 728 - ether_addr_copy(ndev->dev_addr, ndev_main->perm_addr); 728 + eth_hw_addr_set(ndev, ndev_main->perm_addr); 729 729 ndev->dev_addr[0] = (ndev->dev_addr[0] ^ (1 << vif->mid)) | 730 730 0x2; /* locally administered */ 731 731 }
+3 -3
drivers/net/wireless/ath/wil6210/main.c
··· 1358 1358 ether_addr_copy(ndev->perm_addr, mac); 1359 1359 ether_addr_copy(wiphy->perm_addr, mac); 1360 1360 if (!is_valid_ether_addr(ndev->dev_addr)) 1361 - ether_addr_copy(ndev->dev_addr, mac); 1361 + eth_hw_addr_set(ndev, mac); 1362 1362 1363 1363 if (rf_status) {/* bad RF cable? */ 1364 1364 wil_err(wil, "RF communication error 0x%04x", ··· 1431 1431 ether_addr_copy(ndev->perm_addr, mac); 1432 1432 ether_addr_copy(wiphy->perm_addr, mac); 1433 1433 if (!is_valid_ether_addr(ndev->dev_addr)) 1434 - ether_addr_copy(ndev->dev_addr, mac); 1434 + eth_hw_addr_set(ndev, mac); 1435 1435 1436 1436 return 0; 1437 1437 } ··· 1609 1609 struct net_device *ndev = wil->main_ndev; 1610 1610 1611 1611 ether_addr_copy(ndev->perm_addr, mac); 1612 - ether_addr_copy(ndev->dev_addr, ndev->perm_addr); 1612 + eth_hw_addr_set(ndev, ndev->perm_addr); 1613 1613 return 0; 1614 1614 } 1615 1615
+1 -1
drivers/net/wireless/marvell/mwifiex/main.c
··· 1003 1003 return ret; 1004 1004 } 1005 1005 1006 - ether_addr_copy(dev->dev_addr, priv->curr_addr); 1006 + eth_hw_addr_set(dev, priv->curr_addr); 1007 1007 return 0; 1008 1008 } 1009 1009
+1 -1
drivers/net/wireless/quantenna/qtnfmac/core.c
··· 478 478 dev->needs_free_netdev = true; 479 479 dev_net_set(dev, wiphy_net(wiphy)); 480 480 dev->ieee80211_ptr = &vif->wdev; 481 - ether_addr_copy(dev->dev_addr, vif->mac_addr); 481 + eth_hw_addr_set(dev, vif->mac_addr); 482 482 dev->flags |= IFF_BROADCAST | IFF_MULTICAST; 483 483 dev->watchdog_timeo = QTNF_DEF_WDOG_TIMEOUT; 484 484 dev->tx_queue_len = 100;