return 0;
 }
 
-u8 r8712_joinbss_cmd(struct _adapter  *padapter, struct wlan_network *pnetwork)
+int r8712_joinbss_cmd(struct _adapter  *padapter, struct wlan_network *pnetwork)
 {
        struct wlan_bssid_ex *psecnetwork;
        struct cmd_obj          *pcmd;
        padapter->ledpriv.LedControlHandler(padapter, LED_CTL_START_TO_LINK);
        pcmd = kmalloc(sizeof(*pcmd), GFP_ATOMIC);
        if (!pcmd)
-               return _FAIL;
+               return -ENOMEM;
 
        /* for hidden ap to set fw_state here */
        if (check_fwstate(pmlmepriv, WIFI_STATION_STATE | WIFI_ADHOC_STATE) !=
        pcmd->rsp = NULL;
        pcmd->rspsz = 0;
        r8712_enqueue_cmd(pcmdpriv, pcmd);
-       return _SUCCESS;
+       return 0;
 }
 
 u8 r8712_disassoc_cmd(struct _adapter *padapter) /* for sta_mode */
 
                        struct ndis_802_11_ssid *pssid);
 int r8712_createbss_cmd(struct _adapter *padapter);
 u8 r8712_setstakey_cmd(struct _adapter *padapter, u8 *psta, u8 unicast_key);
-u8 r8712_joinbss_cmd(struct _adapter *padapter,
-                    struct wlan_network *pnetwork);
+int r8712_joinbss_cmd(struct _adapter *padapter,
+                     struct wlan_network *pnetwork);
 u8 r8712_disassoc_cmd(struct _adapter *padapter);
 u8 r8712_setopmode_cmd(struct _adapter *padapter,
                 enum NDIS_802_11_NETWORK_INFRASTRUCTURE networktype);
 
        }
 
        ret = r8712_select_and_join_from_scan(pmlmepriv);
-       if (ret == _SUCCESS) {
+       if (!ret) {
                mod_timer(&pmlmepriv->assoc_timer,
                          jiffies + msecs_to_jiffies(MAX_JOIN_TIMEOUT));
        } else {
 
                        if (!check_fwstate(pmlmepriv, _FW_LINKED)) {
                                set_fwstate(pmlmepriv, _FW_UNDER_LINKING);
 
-                               if (r8712_select_and_join_from_scan(pmlmepriv)
-                                   == _SUCCESS) {
+                               if (!r8712_select_and_join_from_scan(pmlmepriv)) {
                                        mod_timer(&pmlmepriv->assoc_timer, jiffies +
                                                  msecs_to_jiffies(MAX_JOIN_TIMEOUT));
                                } else {
                } else {
                        pmlmepriv->to_join = false;
                        set_fwstate(pmlmepriv, _FW_UNDER_LINKING);
-                       if (r8712_select_and_join_from_scan(pmlmepriv) ==
-                           _SUCCESS)
+                       if (!r8712_select_and_join_from_scan(pmlmepriv))
                                mod_timer(&pmlmepriv->assoc_timer, jiffies +
                                          msecs_to_jiffies(MAX_JOIN_TIMEOUT));
                        else
                                pnetwork = pnetwork_max_rssi;
                                goto ask_for_joinbss;
                        }
-                       return _FAIL;
+                       return -EINVAL;
                }
                pnetwork = container_of(pmlmepriv->pscanned,
                                        struct wlan_network, list);
 
 void r8712_free_network_queue(struct _adapter *adapter);
 int r8712_init_mlme_priv(struct _adapter *adapter);
 void r8712_free_mlme_priv(struct mlme_priv *pmlmepriv);
-sint r8712_select_and_join_from_scan(struct mlme_priv *pmlmepriv);
+int r8712_select_and_join_from_scan(struct mlme_priv *pmlmepriv);
 sint r8712_set_key(struct _adapter *adapter,
                   struct security_priv *psecuritypriv, sint keyid);
 sint r8712_set_auth(struct _adapter *adapter,