Merge tag 'gpio-v3.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw...
[cascardo/linux.git] / drivers / staging / rtl8188eu / core / rtw_mlme.c
index c738230..769d4dd 100644 (file)
 #include <wlan_bssdef.h>
 #include <rtw_ioctl_set.h>
 #include <usb_osintf.h>
+#include <linux/vmalloc.h>
 
 extern unsigned char   MCS_rate_2R[16];
 extern unsigned char   MCS_rate_1R[16];
 
-int    _rtw_init_mlme_priv (struct adapter *padapter)
+int _rtw_init_mlme_priv(struct adapter *padapter)
 {
        int     i;
        u8      *pbuf;
@@ -43,9 +44,7 @@ int   _rtw_init_mlme_priv (struct adapter *padapter)
        struct mlme_priv                *pmlmepriv = &padapter->mlmepriv;
        int     res = _SUCCESS;
 
-_func_enter_;
-
-       /*  We don't need to memset padapter->XXX to zero, because adapter is allocated by rtw_zvmalloc(). */
+       /*  We don't need to memset padapter->XXX to zero, because adapter is allocated by vzalloc(). */
 
        pmlmepriv->nic_hdl = (u8 *)padapter;
 
@@ -62,7 +61,7 @@ _func_enter_;
 
        _rtw_memset(&pmlmepriv->assoc_ssid, 0, sizeof(struct ndis_802_11_ssid));
 
-       pbuf = rtw_zvmalloc(MAX_BSS_CNT * (sizeof(struct wlan_network)));
+       pbuf = vzalloc(MAX_BSS_CNT * (sizeof(struct wlan_network)));
 
        if (pbuf == NULL) {
                res = _FAIL;
@@ -87,13 +86,10 @@ _func_enter_;
        rtw_init_mlme_timer(padapter);
 
 exit:
-
-_func_exit_;
-
        return res;
 }
 
-#if defined (CONFIG_88EU_AP_MODE)
+#if defined(CONFIG_88EU_AP_MODE)
 static void rtw_free_mlme_ie_data(u8 **ppie, u32 *plen)
 {
        kfree(*ppie);
@@ -122,24 +118,18 @@ void rtw_free_mlme_priv_ie_data(struct mlme_priv *pmlmepriv)
 }
 #endif
 
-void _rtw_free_mlme_priv (struct mlme_priv *pmlmepriv)
+void _rtw_free_mlme_priv(struct mlme_priv *pmlmepriv)
 {
-_func_enter_;
-
        rtw_free_mlme_priv_ie_data(pmlmepriv);
 
        if (pmlmepriv) {
-               if (pmlmepriv->free_bss_buf) {
-                       rtw_vmfree(pmlmepriv->free_bss_buf, MAX_BSS_CNT * sizeof(struct wlan_network));
-               }
+               if (pmlmepriv->free_bss_buf)
+                       vfree(pmlmepriv->free_bss_buf);
        }
-_func_exit_;
 }
 
 int    _rtw_enqueue_network(struct __queue *queue, struct wlan_network *pnetwork)
 {
-_func_enter_;
-
        if (pnetwork == NULL)
                goto exit;
 
@@ -150,9 +140,6 @@ _func_enter_;
        spin_unlock_bh(&queue->lock);
 
 exit:
-
-_func_exit_;
-
        return _SUCCESS;
 }
 
@@ -160,22 +147,18 @@ struct    wlan_network *_rtw_dequeue_network(struct __queue *queue)
 {
        struct wlan_network *pnetwork;
 
-_func_enter_;
-
        spin_lock_bh(&queue->lock);
 
        if (_rtw_queue_empty(queue)) {
                pnetwork = NULL;
        } else {
-               pnetwork = LIST_CONTAINOR(get_next(&queue->queue), struct wlan_network, list);
+               pnetwork = container_of((&queue->queue)->next, struct wlan_network, list);
 
                rtw_list_delete(&(pnetwork->list));
        }
 
        spin_unlock_bh(&queue->lock);
 
-_func_exit_;
-
        return pnetwork;
 }
 
@@ -185,17 +168,15 @@ struct    wlan_network *_rtw_alloc_network(struct mlme_priv *pmlmepriv)/* _queue *f
        struct __queue *free_queue = &pmlmepriv->free_bss_pool;
        struct list_head *plist = NULL;
 
-_func_enter_;
-
        spin_lock_bh(&free_queue->lock);
 
        if (_rtw_queue_empty(free_queue) == true) {
                pnetwork = NULL;
                goto exit;
        }
-       plist = get_next(&(free_queue->queue));
+       plist = free_queue->queue.next;
 
-       pnetwork = LIST_CONTAINOR(plist , struct wlan_network, list);
+       pnetwork = container_of(plist , struct wlan_network, list);
 
        rtw_list_delete(&pnetwork->list);
 
@@ -211,8 +192,6 @@ _func_enter_;
 exit:
        spin_unlock_bh(&free_queue->lock);
 
-_func_exit_;
-
        return pnetwork;
 }
 
@@ -222,13 +201,11 @@ void _rtw_free_network(struct     mlme_priv *pmlmepriv , struct wlan_network *pnetwo
        u32 lifetime = SCANQUEUE_LIFETIME;
        struct __queue *free_queue = &(pmlmepriv->free_bss_pool);
 
-_func_enter_;
-
        if (pnetwork == NULL)
-               goto exit;
+               return;
 
        if (pnetwork->fixed)
-               goto exit;
+               return;
        curr_time = jiffies;
        if ((check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)) ||
            (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE)))
@@ -236,33 +213,26 @@ _func_enter_;
        if (!isfreeall) {
                delta_time = (curr_time - pnetwork->last_scanned)/HZ;
                if (delta_time < lifetime)/*  unit:sec */
-                       goto exit;
+                       return;
        }
        spin_lock_bh(&free_queue->lock);
        rtw_list_delete(&(pnetwork->list));
        rtw_list_insert_tail(&(pnetwork->list), &(free_queue->queue));
        pmlmepriv->num_of_scanned--;
        spin_unlock_bh(&free_queue->lock);
-
-exit:
-_func_exit_;
 }
 
 void _rtw_free_network_nolock(struct   mlme_priv *pmlmepriv, struct wlan_network *pnetwork)
 {
        struct __queue *free_queue = &(pmlmepriv->free_bss_pool);
 
-_func_enter_;
        if (pnetwork == NULL)
-               goto exit;
+               return;
        if (pnetwork->fixed)
-               goto exit;
+               return;
        rtw_list_delete(&(pnetwork->list));
        rtw_list_insert_tail(&(pnetwork->list), get_list_head(free_queue));
        pmlmepriv->num_of_scanned--;
-exit:
-
-_func_exit_;
 }
 
 /*
@@ -276,24 +246,22 @@ struct wlan_network *_rtw_find_network(struct __queue *scanned_queue, u8 *addr)
        struct  wlan_network *pnetwork = NULL;
        u8 zero_addr[ETH_ALEN] = {0, 0, 0, 0, 0, 0};
 
-_func_enter_;
-       if (_rtw_memcmp(zero_addr, addr, ETH_ALEN)) {
+       if (!memcmp(zero_addr, addr, ETH_ALEN)) {
                pnetwork = NULL;
                goto exit;
        }
        phead = get_list_head(scanned_queue);
-       plist = get_next(phead);
+       plist = phead->next;
 
        while (plist != phead) {
-               pnetwork = LIST_CONTAINOR(plist, struct wlan_network , list);
-               if (_rtw_memcmp(addr, pnetwork->network.MacAddress, ETH_ALEN) == true)
+               pnetwork = container_of(plist, struct wlan_network , list);
+               if (!memcmp(addr, pnetwork->network.MacAddress, ETH_ALEN))
                        break;
-               plist = get_next(plist);
+               plist = plist->next;
        }
        if (plist == phead)
                pnetwork = NULL;
 exit:
-_func_exit_;
        return pnetwork;
 }
 
@@ -305,29 +273,24 @@ void _rtw_free_network_queue(struct adapter *padapter, u8 isfreeall)
        struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
        struct __queue *scanned_queue = &pmlmepriv->scanned_queue;
 
-_func_enter_;
-
-
        spin_lock_bh(&scanned_queue->lock);
 
        phead = get_list_head(scanned_queue);
-       plist = get_next(phead);
+       plist = phead->next;
 
        while (rtw_end_of_queue_search(phead, plist) == false) {
-               pnetwork = LIST_CONTAINOR(plist, struct wlan_network, list);
+               pnetwork = container_of(plist, struct wlan_network, list);
 
-               plist = get_next(plist);
+               plist = plist->next;
 
                _rtw_free_network(pmlmepriv, pnetwork, isfreeall);
        }
        spin_unlock_bh(&scanned_queue->lock);
-_func_exit_;
 }
 
 int rtw_if_up(struct adapter *padapter)
 {
        int res;
-_func_enter_;
 
        if (padapter->bDriverStopped || padapter->bSurpriseRemoved ||
            (check_fwstate(&padapter->mlmepriv, _FW_LINKED) == false)) {
@@ -338,8 +301,6 @@ _func_enter_;
        } else {
                res =  true;
        }
-
-_func_exit_;
        return res;
 }
 
@@ -347,14 +308,12 @@ void rtw_generate_random_ibss(u8 *pibss)
 {
        u32     curtime = jiffies;
 
-_func_enter_;
        pibss[0] = 0x02;  /* in ad-hoc mode bit1 must set to 1 */
        pibss[1] = 0x11;
        pibss[2] = 0x87;
        pibss[3] = (u8)(curtime & 0xff);/* p[0]; */
        pibss[4] = (u8)((curtime>>8) & 0xff);/* p[1]; */
        pibss[5] = (u8)((curtime>>16) & 0xff);/* p[2]; */
-_func_exit_;
        return;
 }
 
@@ -367,11 +326,9 @@ u8 *rtw_get_capability_from_ie(u8 *ie)
 u16 rtw_get_capability(struct wlan_bssid_ex *bss)
 {
        __le16  val;
-_func_enter_;
 
        memcpy((u8 *)&val, rtw_get_capability_from_ie(bss->IEs), 2);
 
-_func_exit_;
        return le16_to_cpu(val);
 }
 
@@ -385,46 +342,34 @@ u8 *rtw_get_beacon_interval_from_ie(u8 *ie)
        return ie + 8;
 }
 
-int    rtw_init_mlme_priv (struct adapter *padapter)/* struct  mlme_priv *pmlmepriv) */
+int rtw_init_mlme_priv(struct adapter *padapter)
 {
        int     res;
-_func_enter_;
        res = _rtw_init_mlme_priv(padapter);/*  (pmlmepriv); */
-_func_exit_;
        return res;
 }
 
-void rtw_free_mlme_priv (struct mlme_priv *pmlmepriv)
+void rtw_free_mlme_priv(struct mlme_priv *pmlmepriv)
 {
-_func_enter_;
        RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("rtw_free_mlme_priv\n"));
-       _rtw_free_mlme_priv (pmlmepriv);
-_func_exit_;
+       _rtw_free_mlme_priv(pmlmepriv);
 }
 
 static struct wlan_network *rtw_alloc_network(struct mlme_priv *pmlmepriv)
 {
-       struct  wlan_network    *pnetwork;
-_func_enter_;
-       pnetwork = _rtw_alloc_network(pmlmepriv);
-_func_exit_;
-       return pnetwork;
+       return _rtw_alloc_network(pmlmepriv);
 }
 
 static void rtw_free_network_nolock(struct mlme_priv *pmlmepriv,
                                    struct wlan_network *pnetwork)
 {
-_func_enter_;
        _rtw_free_network_nolock(pmlmepriv, pnetwork);
-_func_exit_;
 }
 
 
 void rtw_free_network_queue(struct adapter *dev, u8 isfreeall)
 {
-_func_enter_;
        _rtw_free_network_queue(dev, isfreeall);
-_func_exit_;
 }
 
 /*
@@ -458,7 +403,7 @@ int rtw_is_same_ibss(struct adapter *adapter, struct wlan_network *pnetwork)
 static int is_same_ess(struct wlan_bssid_ex *a, struct wlan_bssid_ex *b)
 {
        return (a->Ssid.SsidLength == b->Ssid.SsidLength) &&
-              _rtw_memcmp(a->Ssid.Ssid, b->Ssid.Ssid, a->Ssid.SsidLength);
+              !memcmp(a->Ssid.Ssid, b->Ssid.Ssid, a->Ssid.SsidLength);
 }
 
 int is_same_network(struct wlan_bssid_ex *src, struct wlan_bssid_ex *dst)
@@ -466,7 +411,6 @@ int is_same_network(struct wlan_bssid_ex *src, struct wlan_bssid_ex *dst)
         u16 s_cap, d_cap;
        __le16 le_scap, le_dcap;
 
-_func_enter_;
        memcpy((u8 *)&le_scap, rtw_get_capability_from_ie(src->IEs), 2);
        memcpy((u8 *)&le_dcap, rtw_get_capability_from_ie(dst->IEs), 2);
 
@@ -474,11 +418,9 @@ _func_enter_;
        s_cap = le16_to_cpu(le_scap);
        d_cap = le16_to_cpu(le_dcap);
 
-_func_exit_;
-
        return ((src->Ssid.SsidLength == dst->Ssid.SsidLength) &&
-               ((_rtw_memcmp(src->MacAddress, dst->MacAddress, ETH_ALEN)) == true) &&
-               ((_rtw_memcmp(src->Ssid.Ssid, dst->Ssid.Ssid, src->Ssid.SsidLength)) == true) &&
+               ((!memcmp(src->MacAddress, dst->MacAddress, ETH_ALEN)) == true) &&
+               ((!memcmp(src->Ssid.Ssid, dst->Ssid.Ssid, src->Ssid.SsidLength)) == true) &&
                ((s_cap & WLAN_CAPABILITY_IBSS) ==
                (d_cap & WLAN_CAPABILITY_IBSS)) &&
                ((s_cap & WLAN_CAPABILITY_BSS) ==
@@ -491,25 +433,23 @@ struct    wlan_network    *rtw_get_oldest_wlan_network(struct __queue *scanned_queue)
        struct  wlan_network    *pwlan = NULL;
        struct  wlan_network    *oldest = NULL;
 
-_func_enter_;
        phead = get_list_head(scanned_queue);
 
-       plist = get_next(phead);
+       plist = phead->next;
 
        while (1) {
                if (rtw_end_of_queue_search(phead, plist) == true)
                        break;
 
-               pwlan = LIST_CONTAINOR(plist, struct wlan_network, list);
+               pwlan = container_of(plist, struct wlan_network, list);
 
                if (!pwlan->fixed) {
                        if (oldest == NULL || time_after(oldest->last_scanned, pwlan->last_scanned))
                                oldest = pwlan;
                }
 
-               plist = get_next(plist);
+               plist = plist->next;
        }
-_func_exit_;
        return oldest;
 }
 
@@ -522,7 +462,6 @@ void update_network(struct wlan_bssid_ex *dst, struct wlan_bssid_ex *src,
        u8 sq_final;
        long rssi_final;
 
-_func_enter_;
        rtw_hal_antdiv_rssi_compared(padapter, dst, src); /* this will update src.Rssi, need consider again */
 
        /* The rule below is 1/5 for sample value, 4/5 for history value */
@@ -553,22 +492,18 @@ _func_enter_;
        dst->PhyInfo.SignalQuality = sq_final;
        dst->Rssi = rssi_final;
 
-_func_exit_;
 }
 
 static void update_current_network(struct adapter *adapter, struct wlan_bssid_ex *pnetwork)
 {
        struct  mlme_priv       *pmlmepriv = &(adapter->mlmepriv);
 
-_func_enter_;
-
        if ((check_fwstate(pmlmepriv, _FW_LINKED) == true) &&
            (is_same_network(&(pmlmepriv->cur_network.network), pnetwork))) {
                update_network(&(pmlmepriv->cur_network.network), pnetwork, adapter, true);
                rtw_update_protection(adapter, (pmlmepriv->cur_network.network.IEs) + sizeof(struct ndis_802_11_fixed_ie),
                                      pmlmepriv->cur_network.network.IELength);
        }
-_func_exit_;
 }
 
 /*
@@ -583,24 +518,22 @@ void rtw_update_scanned_network(struct adapter *adapter, struct wlan_bssid_ex *t
        struct wlan_network     *pnetwork = NULL;
        struct wlan_network     *oldest = NULL;
 
-_func_enter_;
-
        spin_lock_bh(&queue->lock);
        phead = get_list_head(queue);
-       plist = get_next(phead);
+       plist = phead->next;
 
        while (1) {
                if (rtw_end_of_queue_search(phead, plist) == true)
                        break;
 
-               pnetwork        = LIST_CONTAINOR(plist, struct wlan_network, list);
+               pnetwork        = container_of(plist, struct wlan_network, list);
 
                if (is_same_network(&(pnetwork->network), target))
                        break;
                if ((oldest == ((struct wlan_network *)0)) ||
                    time_after(oldest->last_scanned, pnetwork->last_scanned))
                        oldest = pnetwork;
-               plist = get_next(plist);
+               plist = plist->next;
        }
        /* If we didn't find a match, then get a new network slot to initialize
         * with this beacon's information */
@@ -663,27 +596,26 @@ _func_enter_;
 exit:
        spin_unlock_bh(&queue->lock);
 
-_func_exit_;
 }
 
 static void rtw_add_network(struct adapter *adapter,
                            struct wlan_bssid_ex *pnetwork)
 {
-_func_enter_;
 #if defined(CONFIG_88EU_P2P)
        rtw_wlan_bssid_ex_remove_p2p_attr(pnetwork, P2P_ATTR_GROUP_INFO);
 #endif
        update_current_network(adapter, pnetwork);
        rtw_update_scanned_network(adapter, pnetwork);
-_func_exit_;
 }
 
-/* select the desired network based on the capability of the (i)bss. */
-/*  check items:       (1) security */
-/*                     (2) network_type */
-/*                     (3) WMM */
-/*                     (4) HT */
-/*                     (5) others */
+/*
+ * select the desired network based on the capability of the (i)bss.
+ * check items:        (1) security
+ *                     (2) network_type
+ *                     (3) WMM
+ *                     (4) HT
+ *                     (5) others
+ */
 static int rtw_is_desired_network(struct adapter *adapter, struct wlan_network *pnetwork)
 {
        struct security_priv *psecuritypriv = &adapter->securitypriv;
@@ -728,9 +660,7 @@ static int rtw_is_desired_network(struct adapter *adapter, struct wlan_network *
 /* TODO: Perry: For Power Management */
 void rtw_atimdone_event_callback(struct adapter        *adapter , u8 *pbuf)
 {
-_func_enter_;
        RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("receive atimdone_evet\n"));
-_func_exit_;
        return;
 }
 
@@ -741,8 +671,6 @@ void rtw_survey_event_callback(struct adapter       *adapter, u8 *pbuf)
        struct wlan_bssid_ex *pnetwork;
        struct  mlme_priv       *pmlmepriv = &(adapter->mlmepriv);
 
-_func_enter_;
-
        pnetwork = (struct wlan_bssid_ex *)pbuf;
 
        RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("rtw_survey_event_callback, ssid=%s\n",  pnetwork->Ssid.Ssid));
@@ -756,7 +684,7 @@ _func_enter_;
 
        /*  update IBSS_network 's timestamp */
        if ((check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)) == true) {
-               if (_rtw_memcmp(&(pmlmepriv->cur_network.network.MacAddress), pnetwork->MacAddress, ETH_ALEN)) {
+               if (!memcmp(&(pmlmepriv->cur_network.network.MacAddress), pnetwork->MacAddress, ETH_ALEN)) {
                        struct wlan_network *ibss_wlan = NULL;
 
                        memcpy(pmlmepriv->cur_network.network.IEs, pnetwork->IEs, 8);
@@ -781,20 +709,14 @@ _func_enter_;
 exit:
 
        spin_unlock_bh(&pmlmepriv->lock);
-
-_func_exit_;
-
        return;
 }
 
-
-
 void rtw_surveydone_event_callback(struct adapter      *adapter, u8 *pbuf)
 {
        struct  mlme_priv *pmlmepriv = &(adapter->mlmepriv);
        struct mlme_ext_priv *pmlmeext;
 
-_func_enter_;
        spin_lock_bh(&pmlmepriv->lock);
 
        if (pmlmepriv->wps_probe_req_ie) {
@@ -884,7 +806,6 @@ _func_enter_;
        pmlmeext = &adapter->mlmeextpriv;
        if (pmlmeext->sitesurvey_res.bss_cnt == 0)
                rtw_hal_sreset_reset(adapter);
-_func_exit_;
 }
 
 void rtw_dummy_event_callback(struct adapter *adapter , u8 *pbuf)
@@ -901,17 +822,15 @@ static void free_scanqueue(struct mlme_priv *pmlmepriv)
        struct __queue *scan_queue = &pmlmepriv->scanned_queue;
        struct list_head *plist, *phead, *ptemp;
 
-_func_enter_;
-
        RT_TRACE(_module_rtl871x_mlme_c_, _drv_notice_, ("+free_scanqueue\n"));
        spin_lock_bh(&scan_queue->lock);
        spin_lock_bh(&free_queue->lock);
 
        phead = get_list_head(scan_queue);
-       plist = get_next(phead);
+       plist = phead->next;
 
        while (plist != phead) {
-               ptemp = get_next(plist);
+               ptemp = plist->next;
                rtw_list_delete(plist);
                rtw_list_insert_tail(plist, &free_queue->queue);
                plist = ptemp;
@@ -920,8 +839,6 @@ _func_enter_;
 
        spin_unlock_bh(&free_queue->lock);
        spin_unlock_bh(&scan_queue->lock);
-
-_func_exit_;
 }
 
 /*
@@ -934,8 +851,6 @@ void rtw_free_assoc_resources(struct adapter *adapter, int lock_scanned_queue)
        struct  sta_priv *pstapriv = &adapter->stapriv;
        struct wlan_network *tgt_network = &pmlmepriv->cur_network;
 
-_func_enter_;
-
        RT_TRACE(_module_rtl871x_mlme_c_, _drv_notice_, ("+rtw_free_assoc_resources\n"));
        RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_,
                 ("tgt_network->network.MacAddress=%pM ssid=%s\n",
@@ -979,7 +894,6 @@ _func_enter_;
        if (lock_scanned_queue)
                spin_unlock_bh(&pmlmepriv->scanned_queue.lock);
        pmlmepriv->key_mask = 0;
-_func_exit_;
 }
 
 /*
@@ -989,8 +903,6 @@ void rtw_indicate_connect(struct adapter *padapter)
 {
        struct mlme_priv        *pmlmepriv = &padapter->mlmepriv;
 
-_func_enter_;
-
        RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("+rtw_indicate_connect\n"));
 
        pmlmepriv->to_join = false;
@@ -1008,7 +920,6 @@ _func_enter_;
        rtw_set_scan_deny(padapter, 3000);
 
        RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("-rtw_indicate_connect: fw_state=0x%08x\n", get_fwstate(pmlmepriv)));
-_func_exit_;
 }
 
 /*
@@ -1018,7 +929,6 @@ void rtw_indicate_disconnect(struct adapter *padapter)
 {
        struct  mlme_priv *pmlmepriv = &padapter->mlmepriv;
 
-_func_enter_;
        RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("+rtw_indicate_disconnect\n"));
 
        _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING | WIFI_UNDER_WPS);
@@ -1038,8 +948,6 @@ _func_enter_;
        p2p_ps_wk_cmd(padapter, P2P_PS_DISABLE, 1);
 
        rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_DISCONNECT, 1);
-
-_func_exit_;
 }
 
 inline void rtw_indicate_scan_done(struct adapter *padapter, bool aborted)
@@ -1100,9 +1008,12 @@ static struct sta_info *rtw_joinbss_update_stainfo(struct adapter *padapter, str
                        _rtw_memset((u8 *)&psta->dot11txpn, 0, sizeof(union pn48));
                        _rtw_memset((u8 *)&psta->dot11rxpn, 0, sizeof(union pn48));
                }
-               /*      Commented by Albert 2012/07/21 */
-               /*      When doing the WPS, the wps_ie_len won't equal to 0 */
-               /*      And the Wi-Fi driver shouldn't allow the data packet to be tramsmitted. */
+               /*
+                * Commented by Albert 2012/07/21
+                * When doing the WPS, the wps_ie_len won't equal to 0
+                * And the Wi-Fi driver shouldn't allow the data
+                * packet to be tramsmitted.
+                */
                if (padapter->securitypriv.wps_ie_len != 0) {
                        psta->ieee8021x_blocked = true;
                        padapter->securitypriv.wps_ie_len = 0;
@@ -1206,8 +1117,6 @@ void rtw_joinbss_event_prehandle(struct adapter *adapter, u8 *pbuf)
        struct wlan_network     *pcur_wlan = NULL, *ptarget_wlan = NULL;
        unsigned int            the_same_macaddr = false;
 
-_func_enter_;
-
        RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("joinbss event call back received with res=%d\n", pnetwork->join_res));
 
        rtw_get_encrypt_decrypt_from_registrypriv(adapter);
@@ -1218,12 +1127,12 @@ _func_enter_;
        else
                RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("@@@@@   rtw_joinbss_event_callback for SSid:%s\n", pmlmepriv->assoc_ssid.Ssid));
 
-       the_same_macaddr = _rtw_memcmp(pnetwork->network.MacAddress, cur_network->network.MacAddress, ETH_ALEN);
+       the_same_macaddr = !memcmp(pnetwork->network.MacAddress, cur_network->network.MacAddress, ETH_ALEN);
 
        pnetwork->network.Length = get_wlan_bssid_ex_sz(&pnetwork->network);
        if (pnetwork->network.Length > sizeof(struct wlan_bssid_ex)) {
                RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("\n\n ***joinbss_evt_callback return a wrong bss ***\n\n"));
-               goto ignore_nolock;
+               return;
        }
 
        spin_lock_bh(&pmlmepriv->lock);
@@ -1319,27 +1228,21 @@ _func_enter_;
 
 ignore_joinbss_callback:
        spin_unlock_bh(&pmlmepriv->lock);
-ignore_nolock:
-_func_exit_;
 }
 
 void rtw_joinbss_event_callback(struct adapter *adapter, u8 *pbuf)
 {
        struct wlan_network     *pnetwork       = (struct wlan_network *)pbuf;
 
-_func_enter_;
-
        mlmeext_joinbss_event_callback(adapter, pnetwork->join_res);
 
        rtw_os_xmit_schedule(adapter);
-
-_func_exit_;
 }
 
 static u8 search_max_mac_id(struct adapter *padapter)
 {
        u8 mac_id;
-#if defined (CONFIG_88EU_AP_MODE)
+#if defined(CONFIG_88EU_AP_MODE)
        u8 aid;
        struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
        struct sta_priv *pstapriv = &padapter->stapriv;
@@ -1347,7 +1250,7 @@ static u8 search_max_mac_id(struct adapter *padapter)
        struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
        struct mlme_ext_info    *pmlmeinfo = &(pmlmeext->mlmext_info);
 
-#if defined (CONFIG_88EU_AP_MODE)
+#if defined(CONFIG_88EU_AP_MODE)
        if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) {
                for (aid = (pstapriv->max_num_sta); aid > 0; aid--) {
                        if (pstapriv->sta_aid[aid-1] != NULL)
@@ -1388,19 +1291,17 @@ void rtw_stassoc_event_callback(struct adapter *adapter, u8 *pbuf)
        struct wlan_network     *cur_network = &(pmlmepriv->cur_network);
        struct wlan_network     *ptarget_wlan = NULL;
 
-_func_enter_;
-
        if (rtw_access_ctrl(adapter, pstassoc->macaddr) == false)
                return;
 
-#if defined (CONFIG_88EU_AP_MODE)
+#if defined(CONFIG_88EU_AP_MODE)
        if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) {
                psta = rtw_get_stainfo(&adapter->stapriv, pstassoc->macaddr);
                if (psta) {
                        ap_sta_info_defer_update(adapter, psta);
                        rtw_stassoc_hw_rpt(adapter, psta);
                }
-               goto exit;
+               return;
        }
 #endif
        /* for AD-HOC mode */
@@ -1408,12 +1309,12 @@ _func_enter_;
        if (psta != NULL) {
                /* the sta have been in sta_info_queue => do nothing */
                RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("Error: rtw_stassoc_event_callback: sta has been in sta_hash_queue\n"));
-               goto exit; /* between drv has received this event before and  fw have not yet to set key to CAM_ENTRY) */
+               return; /* between drv has received this event before and  fw have not yet to set key to CAM_ENTRY) */
        }
        psta = rtw_alloc_stainfo(&adapter->stapriv, pstassoc->macaddr);
        if (psta == NULL) {
                RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("Can't alloc sta_info when rtw_stassoc_event_callback\n"));
-               goto exit;
+               return;
        }
        /* to do: init sta_info variable */
        psta->qos_option = 0;
@@ -1440,8 +1341,6 @@ _func_enter_;
        }
        spin_unlock_bh(&pmlmepriv->lock);
        mlmeext_sta_add_event_callback(adapter, psta);
-exit:
-_func_exit_;
 }
 
 void rtw_stadel_event_callback(struct adapter *adapter, u8 *pbuf)
@@ -1456,8 +1355,6 @@ void rtw_stadel_event_callback(struct adapter *adapter, u8 *pbuf)
        struct  sta_priv *pstapriv = &adapter->stapriv;
        struct wlan_network *tgt_network = &(pmlmepriv->cur_network);
 
-_func_enter_;
-
        psta = rtw_get_stainfo(&adapter->stapriv, pstadel->macaddr);
        if (psta)
                mac_id = psta->mac_id;
@@ -1541,14 +1438,11 @@ _func_enter_;
                }
        }
        spin_unlock_bh(&pmlmepriv->lock);
-_func_exit_;
 }
 
 void rtw_cpwm_event_callback(struct adapter *padapter, u8 *pbuf)
 {
-_func_enter_;
        RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("+rtw_cpwm_event_callback !!!\n"));
-_func_exit_;
 }
 
 /*
@@ -1560,8 +1454,6 @@ void _rtw_join_timeout_handler (struct adapter *adapter)
        struct  mlme_priv *pmlmepriv = &adapter->mlmepriv;
        int do_join_r;
 
-_func_enter_;
-
        DBG_88E("%s, fw_state=%x\n", __func__, get_fwstate(pmlmepriv));
 
        if (adapter->bDriverStopped || adapter->bSurpriseRemoved)
@@ -1592,7 +1484,6 @@ _func_enter_;
                free_scanqueue(pmlmepriv);/*  */
        }
        spin_unlock_bh(&pmlmepriv->lock);
-_func_exit_;
 }
 
 /*
@@ -1658,14 +1549,12 @@ void rtw_dynamic_check_timer_handlder(struct adapter *adapter)
                /*  expire NAT2.5 entry */
                nat25_db_expire(adapter);
 
-               if (adapter->pppoe_connection_in_progress > 0) {
+               if (adapter->pppoe_connection_in_progress > 0)
                        adapter->pppoe_connection_in_progress--;
-               }
 
                /*  due to rtw_dynamic_check_timer_handlder() is called every 2 seconds */
-               if (adapter->pppoe_connection_in_progress > 0) {
+               if (adapter->pppoe_connection_in_progress > 0)
                        adapter->pppoe_connection_in_progress--;
-               }
        }
 
        rcu_read_unlock();
@@ -1687,14 +1576,14 @@ static int rtw_check_join_candidate(struct mlme_priv *pmlmepriv
 
        /* check bssid, if needed */
        if (pmlmepriv->assoc_by_bssid) {
-               if (!_rtw_memcmp(competitor->network.MacAddress, pmlmepriv->assoc_bssid, ETH_ALEN))
+               if (memcmp(competitor->network.MacAddress, pmlmepriv->assoc_bssid, ETH_ALEN))
                        goto exit;
        }
 
        /* check ssid, if needed */
-       if (pmlmepriv->assoc_ssid.Ssid && pmlmepriv->assoc_ssid.SsidLength) {
+       if (pmlmepriv->assoc_ssid.SsidLength) {
                if (competitor->network.Ssid.SsidLength != pmlmepriv->assoc_ssid.SsidLength ||
-                   _rtw_memcmp(competitor->network.Ssid.Ssid, pmlmepriv->assoc_ssid.Ssid, pmlmepriv->assoc_ssid.SsidLength) == false)
+                   !memcmp(competitor->network.Ssid.Ssid, pmlmepriv->assoc_ssid.Ssid, pmlmepriv->assoc_ssid.SsidLength) == false)
                        goto exit;
        }
 
@@ -1742,20 +1631,18 @@ int rtw_select_and_join_from_scanned_queue(struct mlme_priv *pmlmepriv)
        struct  wlan_network    *candidate = NULL;
        u8      supp_ant_div = false;
 
-_func_enter_;
-
        spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
        phead = get_list_head(queue);
        adapter = (struct adapter *)pmlmepriv->nic_hdl;
-       pmlmepriv->pscanned = get_next(phead);
+       pmlmepriv->pscanned = phead->next;
        while (!rtw_end_of_queue_search(phead, pmlmepriv->pscanned)) {
-               pnetwork = LIST_CONTAINOR(pmlmepriv->pscanned, struct wlan_network, list);
+               pnetwork = container_of(pmlmepriv->pscanned, struct wlan_network, list);
                if (pnetwork == NULL) {
                        RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("%s return _FAIL:(pnetwork==NULL)\n", __func__));
                        ret = _FAIL;
                        goto exit;
                }
-               pmlmepriv->pscanned = get_next(pmlmepriv->pscanned);
+               pmlmepriv->pscanned = pmlmepriv->pscanned->next;
                rtw_check_join_candidate(pmlmepriv, &candidate, pnetwork);
        }
        if (candidate == NULL) {
@@ -1792,9 +1679,6 @@ _func_enter_;
 
 exit:
        spin_unlock_bh(&pmlmepriv->scanned_queue.lock);
-
-_func_exit_;
-
        return ret;
 }
 
@@ -1805,8 +1689,6 @@ int rtw_set_auth(struct adapter *adapter, struct security_priv *psecuritypriv)
        struct  cmd_priv *pcmdpriv = &(adapter->cmdpriv);
        int             res = _SUCCESS;
 
-_func_enter_;
-
        pcmd = (struct  cmd_obj *)rtw_zmalloc(sizeof(struct cmd_obj));
        if (pcmd == NULL) {
                res = _FAIL;  /* try again */
@@ -1832,7 +1714,6 @@ _func_enter_;
                 psecuritypriv->dot11AuthAlgrthm));
        res = rtw_enqueue_cmd(pcmdpriv, pcmd);
 exit:
-_func_exit_;
        return res;
 }
 
@@ -1845,7 +1726,6 @@ int rtw_set_key(struct adapter *adapter, struct security_priv *psecuritypriv, in
        struct mlme_priv                *pmlmepriv = &(adapter->mlmepriv);
        int     res = _SUCCESS;
 
-_func_enter_;
        pcmd = (struct  cmd_obj *)rtw_zmalloc(sizeof(struct     cmd_obj));
        if (pcmd == NULL) {
                res = _FAIL;  /* try again */
@@ -1914,7 +1794,6 @@ _func_enter_;
        _rtw_init_listhead(&pcmd->list);
        res = rtw_enqueue_cmd(pcmdpriv, pcmd);
 exit:
-_func_exit_;
        return res;
 }
 
@@ -1946,17 +1825,15 @@ int rtw_restruct_wmm_ie(struct adapter *adapter, u8 *in_ie, u8 *out_ie, uint in_
        return ielength;
 }
 
-/*  */
-/*  Ported from 8185: IsInPreAuthKeyList(). (Renamed from SecIsInPreAuthKeyList(), 2006-10-13.) */
-/*  Added by Annie, 2006-05-07. */
-/*  */
-/*  Search by BSSID, */
-/*  Return Value: */
-/*             -1              :if there is no pre-auth key in the  table */
-/*             >= 0            :if there is pre-auth key, and   return the entry id */
-/*  */
-/*  */
-
+/*
+ * Ported from 8185: IsInPreAuthKeyList().
+ * (Renamed from SecIsInPreAuthKeyList(), 2006-10-13.)
+ * Added by Annie, 2006-05-07.
+ * Search by BSSID,
+ * Return Value:
+ *             -1      :if there is no pre-auth key in the table
+ *             >= 0    :if there is pre-auth key, and return the entry id
+ */
 static int SecIsInPMKIDList(struct adapter *Adapter, u8 *bssid)
 {
        struct security_priv *psecuritypriv = &Adapter->securitypriv;
@@ -1964,7 +1841,7 @@ static int SecIsInPMKIDList(struct adapter *Adapter, u8 *bssid)
 
        do {
                if ((psecuritypriv->PMKIDList[i].bUsed) &&
-                   (_rtw_memcmp(psecuritypriv->PMKIDList[i].Bssid, bssid, ETH_ALEN) == true)) {
+                   (!memcmp(psecuritypriv->PMKIDList[i].Bssid, bssid, ETH_ALEN))) {
                        break;
                } else {
                        i++;
@@ -1973,11 +1850,9 @@ static int SecIsInPMKIDList(struct adapter *Adapter, u8 *bssid)
 
        } while (i < NUM_PMKID_CACHE);
 
-       if (i == NUM_PMKID_CACHE) {
+       if (i == NUM_PMKID_CACHE)
                i = -1;/*  Could not find. */
-       } else {
-               /*  There is one Pre-Authentication Key for the specific BSSID. */
-       }
+
        return i;
 }
 
@@ -2018,8 +1893,6 @@ int rtw_restruct_sec_ie(struct adapter *adapter, u8 *in_ie, u8 *out_ie, uint in_
        uint    ndisauthmode = psecuritypriv->ndisauthtype;
        uint ndissecuritytype = psecuritypriv->ndisencryptstatus;
 
-_func_enter_;
-
        RT_TRACE(_module_rtl871x_mlme_c_, _drv_notice_,
                 ("+rtw_restruct_sec_ie: ndisauthmode=%d ndissecuritytype=%d\n",
                  ndisauthmode, ndissecuritytype));
@@ -2052,9 +1925,6 @@ _func_enter_;
                if (authmode == _WPA2_IE_ID_)
                        ielength = rtw_append_pmkid(adapter, iEntry, out_ie, ielength);
        }
-
-_func_exit_;
-
        return ielength;
 }
 
@@ -2065,8 +1935,6 @@ void rtw_init_registrypriv_dev_network(struct adapter *adapter)
        struct wlan_bssid_ex    *pdev_network = &pregistrypriv->dev_network;
        u8 *myhwaddr = myid(peepriv);
 
-_func_enter_;
-
        memcpy(pdev_network->MacAddress, myhwaddr, ETH_ALEN);
 
        memcpy(&pdev_network->Ssid, &pregistrypriv->ssid, sizeof(struct ndis_802_11_ssid));
@@ -2077,8 +1945,6 @@ _func_enter_;
        pdev_network->Configuration.FHConfig.HopPattern = 0;
        pdev_network->Configuration.FHConfig.HopSet = 0;
        pdev_network->Configuration.FHConfig.DwellTime = 0;
-
-_func_exit_;
 }
 
 void rtw_update_registrypriv_dev_network(struct adapter *adapter)
@@ -2089,8 +1955,6 @@ void rtw_update_registrypriv_dev_network(struct adapter *adapter)
        struct  security_priv *psecuritypriv = &adapter->securitypriv;
        struct  wlan_network    *cur_network = &adapter->mlmepriv.cur_network;
 
-_func_enter_;
-
        pdev_network->Privacy = (psecuritypriv->dot11PrivacyAlgrthm > 0 ? 1 : 0); /*  adhoc no 802.1x */
 
        pdev_network->Rssi = 0;
@@ -2140,13 +2004,10 @@ _func_enter_;
 
        /* notes: translate IELength & Length after assign the Length to cmdsz in createbss_cmd(); */
        /* pdev_network->IELength = cpu_to_le32(sz); */
-_func_exit_;
 }
 
 void rtw_get_encrypt_decrypt_from_registrypriv(struct adapter *adapter)
 {
-_func_enter_;
-_func_exit_;
 }
 
 /* the function is at passive_level */