From: Jes Sorensen Date: Fri, 9 May 2014 13:03:36 +0000 (+0200) Subject: staging: rtl8723au: Use random ethaddr if EEPROM address is corrupted X-Git-Tag: v4.14-rc1~7083^2~39^2~985 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9d85833d1956c88bd1b19d4df5e3cc5712519a63;p=platform%2Fkernel%2Flinux-rpi.git staging: rtl8723au: Use random ethaddr if EEPROM address is corrupted Signed-off-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/rtl8723au/core/rtw_ieee80211.c b/drivers/staging/rtl8723au/core/rtw_ieee80211.c index bd35e8f..98cd990 100644 --- a/drivers/staging/rtl8723au/core/rtw_ieee80211.c +++ b/drivers/staging/rtl8723au/core/rtw_ieee80211.c @@ -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; diff --git a/drivers/staging/rtl8723au/include/ieee80211.h b/drivers/staging/rtl8723au/include/ieee80211.h index 4a4b086..e8072c4 100644 --- a/drivers/staging/rtl8723au/include/ieee80211.h +++ b/drivers/staging/rtl8723au/include/ieee80211.h @@ -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); diff --git a/drivers/staging/rtl8723au/os_dep/usb_intf.c b/drivers/staging/rtl8723au/os_dep/usb_intf.c index 7d5233b..c6cc335 100644 --- a/drivers/staging/rtl8723au/os_dep/usb_intf.c +++ b/drivers/staging/rtl8723au/os_dep/usb_intf.c @@ -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,