staging: rtl8723au: Use random ethaddr if EEPROM address is corrupted
authorJes Sorensen <Jes.Sorensen@redhat.com>
Fri, 9 May 2014 13:03:36 +0000 (15:03 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 15 May 2014 20:11:58 +0000 (13:11 -0700)
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8723au/core/rtw_ieee80211.c
drivers/staging/rtl8723au/include/ieee80211.h
drivers/staging/rtl8723au/os_dep/usb_intf.c

index bd35e8f..98cd990 100644 (file)
@@ -904,30 +904,6 @@ u8 key_2char2num23a(u8 hch, u8 lch)
        return key_char2num(hch) << 4 | key_char2num(lch);
 }
 
-void rtw_macaddr_cfg23a(u8 *mac_addr)
-{
-       u8 mac[ETH_ALEN];
-       if (!mac_addr)
-               return;
-
-       memcpy(mac, mac_addr, ETH_ALEN);
-
-       if (is_broadcast_ether_addr(mac) || is_zero_ether_addr(mac)) {
-               mac[0] = 0x00;
-               mac[1] = 0xe0;
-               mac[2] = 0x4c;
-               mac[3] = 0x87;
-               mac[4] = 0x00;
-               mac[5] = 0x00;
-               /*  use default mac addresss */
-               memcpy(mac_addr, mac, ETH_ALEN);
-               DBG_8723A("MAC Address from efuse error, assign default "
-                         "one !!!\n");
-       }
-       DBG_8723A("rtw_macaddr_cfg23a MAC Address  = "MAC_FMT"\n",
-                 MAC_ARG(mac_addr));
-}
-
 static int rtw_get_cipher_info(struct wlan_network *pnetwork)
 {
        const u8 *pbuf;
index 4a4b086..e8072c4 100644 (file)
@@ -451,8 +451,6 @@ int rtw_check_network_type23a(unsigned char *rate, int ratelen, int channel);
 
 void rtw_get_bcn_info23a(struct wlan_network *pnetwork);
 
-void rtw_macaddr_cfg23a(u8 *mac_addr);
-
 u16 rtw_mcs_rate23a(u8 rf_type, u8 bw_40MHz, u8 short_GI_20, u8 short_GI_40, unsigned char * MCS_rate);
 
 int rtw_action_frame_parse23a(const u8 *frame, u32 frame_len, u8* category, u8 *action);
index 7d5233b..c6cc335 100644 (file)
@@ -659,8 +659,10 @@ static struct rtw_adapter *rtw_usb_if1_init(struct dvobj_priv *dvobj,
        padapter->pwrctrlpriv.autopm_cnt = 1;
 #endif
 
-       /*  set mac addr */
-       rtw_macaddr_cfg23a(padapter->eeprompriv.mac_addr);
+       /* If the eeprom mac address is corrupted, assign a random address */
+       if (is_broadcast_ether_addr(padapter->eeprompriv.mac_addr) ||
+           is_zero_ether_addr(padapter->eeprompriv.mac_addr))
+               eth_random_addr(padapter->eeprompriv.mac_addr);
 
        DBG_8723A("bDriverStopped:%d, bSurpriseRemoved:%d, bup:%d, hw_init_completed:%d\n",
                  padapter->bDriverStopped, padapter->bSurpriseRemoved,