Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5ca06ebe authored by Felix Fietkau's avatar Felix Fietkau Committed by John W. Linville
Browse files

ath9k: use a random MAC address if the EEPROM address is invalid



Based on OpenWrt patch by Gabor Juhos

Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 3468968e
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
#include <linux/module.h>
#include <linux/time.h>
#include <linux/bitops.h>
#include <linux/etherdevice.h>
#include <asm/unaligned.h>

#include "hw.h"
@@ -446,8 +447,16 @@ static int ath9k_hw_init_macaddr(struct ath_hw *ah)
		common->macaddr[2 * i] = eeval >> 8;
		common->macaddr[2 * i + 1] = eeval & 0xff;
	}
	if (sum == 0 || sum == 0xffff * 3)
		return -EADDRNOTAVAIL;
	if (!is_valid_ether_addr(common->macaddr)) {
		ath_err(common,
			"eeprom contains invalid mac address: %pM\n",
			common->macaddr);

		random_ether_addr(common->macaddr);
		ath_err(common,
			"random mac address will be used: %pM\n",
			common->macaddr);
	}

	return 0;
}