All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel.org>
To: kvalo@codeaurora.org
Cc: linux-wireless@vger.kernel.org, Jakub Kicinski <kuba@kernel.org>,
	simon@thekelleys.org.uk
Subject: [PATCH 06/15] wireless: atmel: use eth_hw_addr_set()
Date: Mon, 18 Oct 2021 16:50:12 -0700	[thread overview]
Message-ID: <20211018235021.1279697-7-kuba@kernel.org> (raw)
In-Reply-To: <20211018235021.1279697-1-kuba@kernel.org>

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.

Use a buffer on the stack. Note that atmel_get_mib() is a wrapper
around atmel_copy_to_host(). For the to device direction we just
need to make sure functions respect argument being cost.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
CC: simon@thekelleys.org.uk
CC: kvalo@codeaurora.org
CC: linux-wireless@vger.kernel.org
---
 drivers/net/wireless/atmel/atmel.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/drivers/net/wireless/atmel/atmel.c b/drivers/net/wireless/atmel/atmel.c
index 8290cf881a1b..35c2e798d98b 100644
--- a/drivers/net/wireless/atmel/atmel.c
+++ b/drivers/net/wireless/atmel/atmel.c
@@ -600,7 +600,7 @@ static void atmel_set_mib8(struct atmel_private *priv, u8 type, u8 index,
 static void atmel_set_mib16(struct atmel_private *priv, u8 type, u8 index,
 			    u16 data);
 static void atmel_set_mib(struct atmel_private *priv, u8 type, u8 index,
-			  u8 *data, int data_len);
+			  const u8 *data, int data_len);
 static void atmel_get_mib(struct atmel_private *priv, u8 type, u8 index,
 			  u8 *data, int data_len);
 static void atmel_scan(struct atmel_private *priv, int specific_ssid);
@@ -3669,6 +3669,7 @@ static int probe_atmel_card(struct net_device *dev)
 {
 	int rc = 0;
 	struct atmel_private *priv = netdev_priv(dev);
+	u8 addr[ETH_ALEN] = {};
 
 	/* reset pccard */
 	if (priv->bus_type == BUS_TYPE_PCCARD)
@@ -3693,7 +3694,9 @@ static int probe_atmel_card(struct net_device *dev)
 		if (i == 0) {
 			printk(KERN_ALERT "%s: MAC failed to boot MAC address reader.\n", dev->name);
 		} else {
-			atmel_copy_to_host(dev, dev->dev_addr, atmel_read16(dev, MR2), 6);
+
+			atmel_copy_to_host(dev, addr, atmel_read16(dev, MR2), 6);
+			eth_hw_addr_set(dev, addr);
 			/* got address, now squash it again until the network
 			   interface is opened */
 			if (priv->bus_type == BUS_TYPE_PCCARD)
@@ -3705,7 +3708,8 @@ static int probe_atmel_card(struct net_device *dev)
 		/* Mac address easy in this case. */
 		priv->card_type = CARD_TYPE_PARALLEL_FLASH;
 		atmel_write16(dev,  BSR, 1);
-		atmel_copy_to_host(dev, dev->dev_addr, 0xc000, 6);
+		atmel_copy_to_host(dev, addr, 0xc000, 6);
+		eth_hw_addr_set(dev, addr);
 		atmel_write16(dev,  BSR, 0x200);
 		rc = 1;
 	} else {
@@ -3713,7 +3717,8 @@ static int probe_atmel_card(struct net_device *dev)
 		   for the Mac Address */
 		priv->card_type = CARD_TYPE_SPI_FLASH;
 		if (atmel_wakeup_firmware(priv) == 0) {
-			atmel_get_mib(priv, Mac_Address_Mib_Type, 0, dev->dev_addr, 6);
+			atmel_get_mib(priv, Mac_Address_Mib_Type, 0, addr, 6);
+			eth_hw_addr_set(dev, addr);
 
 			/* got address, now squash it again until the network
 			   interface is opened */
@@ -4103,7 +4108,7 @@ static void atmel_set_mib16(struct atmel_private *priv, u8 type, u8 index,
 }
 
 static void atmel_set_mib(struct atmel_private *priv, u8 type, u8 index,
-			  u8 *data, int data_len)
+			  const u8 *data, int data_len)
 {
 	struct get_set_mib m;
 	m.type = type;
-- 
2.31.1


  parent reply	other threads:[~2021-10-18 23:50 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-18 23:50 [PATCH 00/15] wireless: don't write to netdev->dev_addr directly Jakub Kicinski
2021-10-18 23:50 ` [PATCH 01/15] wireless: use eth_hw_addr_set() Jakub Kicinski
2021-10-20  9:40   ` Kalle Valo
2021-10-18 23:50 ` [PATCH 02/15] wireless: use eth_hw_addr_set() instead of ether_addr_copy() Jakub Kicinski
2021-10-18 23:50 ` [PATCH 03/15] wireless: use eth_hw_addr_set() for dev->addr_len cases Jakub Kicinski
2021-10-18 23:50 ` [PATCH 04/15] wireless: ath6kl: use eth_hw_addr_set() Jakub Kicinski
2021-10-18 23:50 ` [PATCH 05/15] wireless: wil6210: " Jakub Kicinski
2021-10-18 23:50 ` Jakub Kicinski [this message]
2021-10-18 23:50 ` [PATCH 07/15] wireless: brcmfmac: prepare for const netdev->dev_addr Jakub Kicinski
2021-10-18 23:50 ` [PATCH 08/15] wireless: cisco: use eth_hw_addr_set() Jakub Kicinski
2021-10-19  6:24   ` Sebastian Andrzej Siewior
2021-10-18 23:50 ` [PATCH 09/15] wireless: ipw2200: prepare for const netdev->dev_addr Jakub Kicinski
2021-10-24 11:53   ` Stanislav Yakovlev
2021-10-18 23:50 ` [PATCH 10/15] wireless: intersil: use eth_hw_addr_set() Jakub Kicinski
2021-10-18 23:50 ` [PATCH 11/15] wireless: mac80211_hwsim: " Jakub Kicinski
2021-10-18 23:50 ` [PATCH 12/15] wireless: wilc1000: " Jakub Kicinski
2021-10-18 23:50 ` [PATCH 13/15] wireless: ray_cs: " Jakub Kicinski
2021-10-18 23:50 ` [PATCH 14/15] wireless: wl3501_cs: " Jakub Kicinski
2021-10-18 23:50 ` [PATCH 15/15] wireless: zd1201: " Jakub Kicinski

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=20211018235021.1279697-7-kuba@kernel.org \
    --to=kuba@kernel.org \
    --cc=kvalo@codeaurora.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=simon@thekelleys.org.uk \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.