diff mbox series

ath10k: utilize random MAC address if none is provided

Message ID 20180907172157.203785-1-briannorris@chromium.org (mailing list archive)
State New, archived
Headers show
Series ath10k: utilize random MAC address if none is provided | expand

Commit Message

Brian Norris Sept. 7, 2018, 5:21 p.m. UTC
Since commit 9d5804662ce1 ("ath10k: retrieve MAC address from system
firmware if provided"), we support pulling our MAC address from system
firmware. Along with this, we should admit that it's possible for system
firmware to be screwed up as well, omitting the MAC address there.

Provide a fallback, such that we choose a randomly-generated MAC
address, with the local assignment bit set.

This is not a preferred mode of operation and really should only serve
the purpose of keeping the system chugging along while someone figures
out what's wrong with the system. Grepping through other wireless
drivers shows very similar fallback logic though, so why not?

  git grep eth_random_addr drivers/net/wireless/

Signed-off-by: Brian Norris <briannorris@chromium.org>
---
 drivers/net/wireless/ath/ath10k/mac.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Kalle Valo Oct. 1, 2018, 1:54 p.m. UTC | #1
Brian Norris <briannorris@chromium.org> wrote:

> Since commit 9d5804662ce1 ("ath10k: retrieve MAC address from system
> firmware if provided"), we support pulling our MAC address from system
> firmware. Along with this, we should admit that it's possible for system
> firmware to be screwed up as well, omitting the MAC address there.
> 
> Provide a fallback, such that we choose a randomly-generated MAC
> address, with the local assignment bit set.
> 
> This is not a preferred mode of operation and really should only serve
> the purpose of keeping the system chugging along while someone figures
> out what's wrong with the system. Grepping through other wireless
> drivers shows very similar fallback logic though, so why not?
> 
>   git grep eth_random_addr drivers/net/wireless/
> 
> Signed-off-by: Brian Norris <briannorris@chromium.org>
> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>

Patch applied to ath-next branch of ath.git, thanks.

234e4307cf7f ath10k: utilize random MAC address if none is provided
diff mbox series

Patch

diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index 97548f96a2f7..484f9c74ce46 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -8325,6 +8325,10 @@  int ath10k_mac_register(struct ath10k *ar)
 	void *channels;
 	int ret;
 
+	if (!is_valid_ether_addr(ar->mac_addr)) {
+		ath10k_warn(ar, "invalid MAC address; choosing random\n");
+		eth_random_addr(ar->mac_addr);
+	}
 	SET_IEEE80211_PERM_ADDR(ar->hw, ar->mac_addr);
 
 	SET_IEEE80211_DEV(ar->hw, ar->dev);