sizeof(struct security_priv));
        timer_setup(&padapter->securitypriv.tkip_timer,
                    r8712_use_tkipkey_handler, 0);
-       _r8712_init_sta_priv(&padapter->stapriv);
+       if (_r8712_init_sta_priv(&padapter->stapriv))
+               return _FAIL;
        padapter->stapriv.padapter = padapter;
        r8712_init_bcmc_stainfo(padapter);
        r8712_init_pwrctrl_priv(padapter);
 
        INIT_LIST_HEAD(&psta->auth_list);
 }
 
-u32 _r8712_init_sta_priv(struct        sta_priv *pstapriv)
+int _r8712_init_sta_priv(struct        sta_priv *pstapriv)
 {
        struct sta_info *psta;
        s32 i;
        pstapriv->pallocated_stainfo_buf = kmalloc(sizeof(struct sta_info) *
                                                   NUM_STA + 4, GFP_ATOMIC);
        if (!pstapriv->pallocated_stainfo_buf)
-               return _FAIL;
+               return -ENOMEM;
        pstapriv->pstainfo_buf = pstapriv->pallocated_stainfo_buf + 4 -
                ((addr_t)(pstapriv->pallocated_stainfo_buf) & 3);
        _init_queue(&pstapriv->free_sta_queue);
        }
        INIT_LIST_HEAD(&pstapriv->asoc_list);
        INIT_LIST_HEAD(&pstapriv->auth_list);
-       return _SUCCESS;
+       return 0;
 }
 
 /* this function is used to free the memory of lock || sema for all stainfos */
 
        return x;
 }
 
-u32 _r8712_init_sta_priv(struct sta_priv *pstapriv);
+int _r8712_init_sta_priv(struct sta_priv *pstapriv);
 void _r8712_free_sta_priv(struct sta_priv *pstapriv);
 struct sta_info *r8712_alloc_stainfo(struct sta_priv *pstapriv,
                                     u8 *hwaddr);