X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/a37723a39975831d6151f83643b36a4be2ee8826..33f858ee205cf55679ddce8cad468c7bb178bd67:/package/mac80211/patches/403-ath9k-fix-invalid-mac-address-handling.patch

diff --git a/package/mac80211/patches/403-ath9k-fix-invalid-mac-address-handling.patch b/package/mac80211/patches/403-ath9k-fix-invalid-mac-address-handling.patch
index 2a1763a93..767f905a7 100644
--- a/package/mac80211/patches/403-ath9k-fix-invalid-mac-address-handling.patch
+++ b/package/mac80211/patches/403-ath9k-fix-invalid-mac-address-handling.patch
@@ -1,25 +1,29 @@
---- a/drivers/net/wireless/ath9k/hw.c
-+++ b/drivers/net/wireless/ath9k/hw.c
-@@ -499,11 +499,18 @@ static int ath9k_hw_init_macaddr(struct 
- 		ahp->ah_macaddr[2 * i] = eeval >> 8;
- 		ahp->ah_macaddr[2 * i + 1] = eeval & 0xff;
+--- a/drivers/net/wireless/ath/ath9k/hw.c
++++ b/drivers/net/wireless/ath/ath9k/hw.c
+@@ -16,6 +16,7 @@
+ 
+ #include <linux/io.h>
+ #include <linux/slab.h>
++#include <linux/etherdevice.h>
+ #include <asm/unaligned.h>
+ 
+ #include "hw.h"
+@@ -443,8 +444,16 @@ static int ath9k_hw_init_macaddr(struct 
+ 		common->macaddr[2 * i] = eeval >> 8;
+ 		common->macaddr[2 * i + 1] = eeval & 0xff;
  	}
--	if (sum == 0 || sum == 0xffff * 3) {
-+
-+	if (!is_valid_ether_addr(ahp->ah_macaddr)) {
-+		DECLARE_MAC_BUF(macbuf);
-+
-+		DPRINTF(ah->ah_sc, ATH_DBG_EEPROM,
-+			"eeprom contains invalid mac address: %s\n",
-+			print_mac(macbuf, ahp->ah_macaddr));
-+
-+		random_ether_addr(ahp->ah_macaddr);
- 		DPRINTF(ah->ah_sc, ATH_DBG_EEPROM,
--			"mac address read failed: %pM\n",
--			ahp->ah_macaddr);
+-	if (sum == 0 || sum == 0xffff * 3)
 -		return -EADDRNOTAVAIL;
-+			"random mac address will be used: %s\n",
-+			print_mac(macbuf, ahp->ah_macaddr));
- 	}
++	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;
+ }