From ef1472a558d00f5eadef02ecaf3aa39ea0b1aa0c Mon Sep 17 00:00:00 2001 From: Larry Finger Date: Wed, 31 Jul 2013 21:43:28 -0500 Subject: [PATCH] rtl8188eu: Fix checkpatch errors in core/rtw_recv.c Signed-off-by: Larry Finger --- core/rtw_recv.c | 1364 ++++++++++++++++++----------------------------- 1 file changed, 530 insertions(+), 834 deletions(-) diff --git a/core/rtw_recv.c b/core/rtw_recv.c index d879506..c6aab5b 100644 --- a/core/rtw_recv.c +++ b/core/rtw_recv.c @@ -34,8 +34,6 @@ void rtw_signal_stat_timer_hdl(RTW_TIMER_HDL_ARGS); void _rtw_init_sta_recv_priv(struct sta_recv_priv *psta_recvpriv) { - - _func_enter_; _rtw_memset((u8 *)psta_recvpriv, 0, sizeof (struct sta_recv_priv)); @@ -45,7 +43,6 @@ _func_enter_; _rtw_init_queue(&psta_recvpriv->defrag_q); _func_exit_; - } int _rtw_init_recv_priv(struct recv_priv *precvpriv, struct adapter *padapter) @@ -54,7 +51,7 @@ int _rtw_init_recv_priv(struct recv_priv *precvpriv, struct adapter *padapter) union recv_frame *precvframe; - int res=_SUCCESS; + int res = _SUCCESS; _func_enter_; _rtw_spinlock_init(&precvpriv->lock); @@ -71,18 +68,16 @@ _func_enter_; precvpriv->pallocated_frame_buf = rtw_zvmalloc(NR_RECVFRAME * sizeof(union recv_frame) + RXFRAME_ALIGN_SZ); - if (precvpriv->pallocated_frame_buf==NULL){ - res= _FAIL; + if (precvpriv->pallocated_frame_buf == NULL) { + res = _FAIL; goto exit; } precvpriv->precv_frame_buf = (u8 *)N_BYTE_ALIGMENT((size_t)(precvpriv->pallocated_frame_buf), RXFRAME_ALIGN_SZ); - precvframe = (union recv_frame*) precvpriv->precv_frame_buf; + precvframe = (union recv_frame *)precvpriv->precv_frame_buf; - - for (i=0; i < NR_RECVFRAME ; i++) - { + for (i = 0; i < NR_RECVFRAME; i++) { _rtw_init_listhead(&(precvframe->u.list)); rtw_list_insert_tail(&(precvframe->u.list), &(precvpriv->free_recv_queue.queue)); @@ -91,11 +86,10 @@ _func_enter_; precvframe->u.hdr.len = 0; - precvframe->u.hdr.adapter =padapter; + precvframe->u.hdr.adapter = padapter; precvframe++; - } - precvpriv->rx_pending_cnt=1; + precvpriv->rx_pending_cnt = 1; _rtw_init_sema(&precvpriv->allrxreturnevt, 0); @@ -141,24 +135,19 @@ _func_enter_; rtw_hal_free_recv_priv(padapter); _func_exit_; - } union recv_frame *_rtw_alloc_recvframe (struct __queue *pfree_recv_queue) { - union recv_frame *precvframe; struct list_head *plist, *phead; struct adapter *padapter; struct recv_priv *precvpriv; _func_enter_; - if (_rtw_queue_empty(pfree_recv_queue) == true) - { + if (_rtw_queue_empty(pfree_recv_queue)) { precvframe = NULL; - } - else - { + } else { phead = get_list_head(pfree_recv_queue); plist = get_next(phead); @@ -166,9 +155,9 @@ _func_enter_; precvframe = LIST_CONTAINOR(plist, union recv_frame, u); rtw_list_delete(&precvframe->u.hdr.list); - padapter=precvframe->u.hdr.adapter; - if (padapter !=NULL){ - precvpriv=&padapter->recvpriv; + padapter = precvframe->u.hdr.adapter; + if (padapter != NULL) { + precvpriv = &padapter->recvpriv; if (pfree_recv_queue == &precvpriv->free_recv_queue) precvpriv->free_recvframe_cnt--; } @@ -177,7 +166,6 @@ _func_enter_; _func_exit_; return precvframe; - } union recv_frame *rtw_alloc_recvframe (struct __queue *pfree_recv_queue) @@ -199,13 +187,13 @@ void rtw_init_recvframe(union recv_frame *precvframe, struct recv_priv *precvpri /* Perry: This can be removed */ _rtw_init_listhead(&precvframe->u.hdr.list); - precvframe->u.hdr.len=0; + precvframe->u.hdr.len = 0; } int rtw_free_recvframe(union recv_frame *precvframe, struct __queue *pfree_recv_queue) { unsigned long irqL; - struct adapter *padapter=precvframe->u.hdr.adapter; + struct adapter *padapter = precvframe->u.hdr.adapter; struct recv_priv *precvpriv = &padapter->recvpriv; _func_enter_; @@ -223,7 +211,7 @@ _func_enter_; rtw_list_insert_tail(&(precvframe->u.hdr.list), get_list_head(pfree_recv_queue)); - if (padapter !=NULL){ + if (padapter != NULL) { if (pfree_recv_queue == &precvpriv->free_recv_queue) precvpriv->free_recvframe_cnt++; } @@ -233,16 +221,11 @@ _func_enter_; _func_exit_; return _SUCCESS; - } - - - int _rtw_enqueue_recvframe(union recv_frame *precvframe, struct __queue *queue) { - - struct adapter *padapter=precvframe->u.hdr.adapter; + struct adapter *padapter = precvframe->u.hdr.adapter; struct recv_priv *precvpriv = &padapter->recvpriv; _func_enter_; @@ -291,8 +274,7 @@ _func_enter_; phead = get_list_head(pframequeue); plist = get_next(phead); - while (rtw_end_of_queue_search(phead, plist) == false) - { + while (rtw_end_of_queue_search(phead, plist) == false) { precvframe = LIST_CONTAINOR(plist, union recv_frame, u); plist = get_next(plist); @@ -303,14 +285,13 @@ _func_enter_; spin_unlock(&pframequeue->lock); _func_exit_; - } u32 rtw_free_uc_swdec_pending_queue(struct adapter *adapter) { u32 cnt = 0; union recv_frame *pending_frame; - while ((pending_frame=rtw_alloc_recvframe(&adapter->recvpriv.uc_swdec_pending_queue))) { + while ((pending_frame = rtw_alloc_recvframe(&adapter->recvpriv.uc_swdec_pending_queue))) { rtw_free_recvframe(pending_frame, &adapter->recvpriv.free_recv_queue); DBG_88E("%s: dequeue uc_swdec_pending_queue\n", __func__); cnt++; @@ -319,7 +300,6 @@ u32 rtw_free_uc_swdec_pending_queue(struct adapter *adapter) return cnt; } - int rtw_enqueue_recvbuf_to_head(struct recv_buf *precvbuf, struct __queue *queue) { unsigned long irqL; @@ -354,12 +334,9 @@ struct recv_buf *rtw_dequeue_recvbuf (struct __queue *queue) _enter_critical_ex(&queue->lock, &irqL); - if (_rtw_queue_empty(queue) == true) - { + if (_rtw_queue_empty(queue)) { precvbuf = NULL; - } - else - { + } else { phead = get_list_head(queue); plist = get_next(phead); @@ -367,141 +344,131 @@ struct recv_buf *rtw_dequeue_recvbuf (struct __queue *queue) precvbuf = LIST_CONTAINOR(plist, struct recv_buf, list); rtw_list_delete(&precvbuf->list); - } _exit_critical_ex(&queue->lock, &irqL); return precvbuf; - } -int recvframe_chkmic(struct adapter *adapter, union recv_frame *precvframe){ - - int i,res=_SUCCESS; +int recvframe_chkmic(struct adapter *adapter, union recv_frame *precvframe) +{ + int i, res = _SUCCESS; u32 datalen; u8 miccode[8]; - u8 bmic_err=false,brpt_micerror = true; - u8 *pframe, *payload,*pframemic; + u8 bmic_err = false, brpt_micerror = true; + u8 *pframe, *payload, *pframemic; u8 *mickey; struct sta_info *stainfo; - struct rx_pkt_attrib *prxattrib=&precvframe->u.hdr.attrib; - struct security_priv *psecuritypriv=&adapter->securitypriv; + struct rx_pkt_attrib *prxattrib = &precvframe->u.hdr.attrib; + struct security_priv *psecuritypriv = &adapter->securitypriv; struct mlme_ext_priv *pmlmeext = &adapter->mlmeextpriv; struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); _func_enter_; - stainfo=rtw_get_stainfo(&adapter->stapriv ,&prxattrib->ta[0]); + stainfo = rtw_get_stainfo(&adapter->stapriv, &prxattrib->ta[0]); - if (prxattrib->encrypt ==_TKIP_) - { - RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("\n recvframe_chkmic:prxattrib->encrypt ==_TKIP_\n")); - RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("\n recvframe_chkmic:da=0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x\n", - prxattrib->ra[0],prxattrib->ra[1],prxattrib->ra[2],prxattrib->ra[3],prxattrib->ra[4],prxattrib->ra[5])); + if (prxattrib->encrypt == _TKIP_) { + RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("\n recvframe_chkmic:prxattrib->encrypt==_TKIP_\n")); + RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("\n recvframe_chkmic:da=0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x\n", + prxattrib->ra[0], prxattrib->ra[1], prxattrib->ra[2], prxattrib->ra[3], prxattrib->ra[4], prxattrib->ra[5])); /* calculate mic code */ - if (stainfo!= NULL) - { - if (IS_MCAST(prxattrib->ra)) - { - mickey=&psecuritypriv->dot118021XGrprxmickey[prxattrib->key_index].skey[0]; + if (stainfo != NULL) { + if (IS_MCAST(prxattrib->ra)) { + mickey = &psecuritypriv->dot118021XGrprxmickey[prxattrib->key_index].skey[0]; - RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("\n recvframe_chkmic: bcmc key\n")); + RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("\n recvframe_chkmic: bcmc key\n")); - if (psecuritypriv->binstallGrpkey==false) - { - res=_FAIL; - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("\n recvframe_chkmic:didn't install group key!!!!!!!!!!\n")); + if (!psecuritypriv) { + res = _FAIL; + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("\n recvframe_chkmic:didn't install group key!!!!!!!!!!\n")); DBG_88E("\n recvframe_chkmic:didn't install group key!!!!!!!!!!\n"); goto exit; } - } - else{ - mickey=&stainfo->dot11tkiprxmickey.skey[0]; - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("\n recvframe_chkmic: unicast key\n")); + } else { + mickey = &stainfo->dot11tkiprxmickey.skey[0]; + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("\n recvframe_chkmic: unicast key\n")); } - datalen=precvframe->u.hdr.len-prxattrib->hdrlen-prxattrib->iv_len-prxattrib->icv_len-8;/* icv_len included the mic code */ - pframe=precvframe->u.hdr.rx_data; - payload=pframe+prxattrib->hdrlen+prxattrib->iv_len; + datalen = precvframe->u.hdr.len-prxattrib->hdrlen-prxattrib->iv_len-prxattrib->icv_len-8;/* icv_len included the mic code */ + pframe = precvframe->u.hdr.rx_data; + payload = pframe+prxattrib->hdrlen+prxattrib->iv_len; - RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("\n prxattrib->iv_len=%d prxattrib->icv_len=%d\n",prxattrib->iv_len,prxattrib->icv_len)); - rtw_seccalctkipmic(mickey,pframe,payload, datalen ,&miccode[0],(unsigned char)prxattrib->priority); /* care the length of the data */ + RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("\n prxattrib->iv_len=%d prxattrib->icv_len=%d\n", prxattrib->iv_len, prxattrib->icv_len)); + rtw_seccalctkipmic(mickey, pframe, payload, datalen, &miccode[0], + (unsigned char)prxattrib->priority); /* care the length of the data */ - pframemic=payload+datalen; + pframemic = payload+datalen; - bmic_err=false; + bmic_err = false; - for (i=0;i<8;i++){ - if (miccode[i] != *(pframemic+i)){ - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("recvframe_chkmic:miccode[%d](%02x) != *(pframemic+%d)(%02x) ",i,miccode[i],i,*(pframemic+i))); - bmic_err=true; + for (i = 0; i < 8; i++) { + if (miccode[i] != *(pframemic+i)) { + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, + ("recvframe_chkmic:miccode[%d](%02x)!=*(pframemic+%d)(%02x) ", + i, miccode[i], i, *(pframemic+i))); + bmic_err = true; } } - - if (bmic_err==true){ - - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("\n *(pframemic-8)-*(pframemic-1)=0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x\n", - *(pframemic-8),*(pframemic-7),*(pframemic-6),*(pframemic-5),*(pframemic-4),*(pframemic-3),*(pframemic-2),*(pframemic-1))); - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("\n *(pframemic-16)-*(pframemic-9)=0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x\n", - *(pframemic-16),*(pframemic-15),*(pframemic-14),*(pframemic-13),*(pframemic-12),*(pframemic-11),*(pframemic-10),*(pframemic-9))); - + if (bmic_err) { + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, + ("\n *(pframemic-8)-*(pframemic-1)=0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x\n", + *(pframemic-8), *(pframemic-7), *(pframemic-6), + *(pframemic-5), *(pframemic-4), *(pframemic-3), + *(pframemic-2), *(pframemic-1))); + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, + ("\n *(pframemic-16)-*(pframemic-9)=0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x\n", + *(pframemic-16), *(pframemic-15), *(pframemic-14), + *(pframemic-13), *(pframemic-12), *(pframemic-11), + *(pframemic-10), *(pframemic-9))); { uint i; - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("\n ======demp packet (len=%d)======\n",precvframe->u.hdr.len)); - for (i=0;iu.hdr.len;i=i+8){ - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x", - *(precvframe->u.hdr.rx_data+i),*(precvframe->u.hdr.rx_data+i+1), - *(precvframe->u.hdr.rx_data+i+2),*(precvframe->u.hdr.rx_data+i+3), - *(precvframe->u.hdr.rx_data+i+4),*(precvframe->u.hdr.rx_data+i+5), - *(precvframe->u.hdr.rx_data+i+6),*(precvframe->u.hdr.rx_data+i+7))); + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("\n ======demp packet (len=%d)======\n", precvframe->u.hdr.len)); + for (i = 0; i < precvframe->u.hdr.len; i = i+8) { + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x", + *(precvframe->u.hdr.rx_data+i), *(precvframe->u.hdr.rx_data+i+1), + *(precvframe->u.hdr.rx_data+i+2), *(precvframe->u.hdr.rx_data+i+3), + *(precvframe->u.hdr.rx_data+i+4), *(precvframe->u.hdr.rx_data+i+5), + *(precvframe->u.hdr.rx_data+i+6), *(precvframe->u.hdr.rx_data+i+7))); } - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("\n ======demp packet end [len=%d]======\n",precvframe->u.hdr.len)); - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("\n hrdlen=%d,\n",prxattrib->hdrlen)); + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("\n ====== demp packet end [len=%d]======\n", precvframe->u.hdr.len)); + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("\n hrdlen=%d,\n", prxattrib->hdrlen)); } - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("ra=0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x psecuritypriv->binstallGrpkey=%d ", - prxattrib->ra[0],prxattrib->ra[1],prxattrib->ra[2], - prxattrib->ra[3],prxattrib->ra[4],prxattrib->ra[5],psecuritypriv->binstallGrpkey)); + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, + ("ra=0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x psecuritypriv->binstallGrpkey=%d ", + prxattrib->ra[0], prxattrib->ra[1], prxattrib->ra[2], + prxattrib->ra[3], prxattrib->ra[4], prxattrib->ra[5], psecuritypriv->binstallGrpkey)); /* double check key_index for some timing issue , */ /* cannot compare with psecuritypriv->dot118021XGrpKeyid also cause timing issue */ - if ((IS_MCAST(prxattrib->ra)==true) && (prxattrib->key_index != pmlmeinfo->key_index )) + if ((IS_MCAST(prxattrib->ra) == true) && (prxattrib->key_index != pmlmeinfo->key_index)) brpt_micerror = false; - if ((prxattrib->bdecrypted ==true)&& (brpt_micerror == true)) - { - rtw_handle_tkip_mic_err(adapter,(u8)IS_MCAST(prxattrib->ra)); - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,(" mic error :prxattrib->bdecrypted=%d ",prxattrib->bdecrypted)); - DBG_88E(" mic error :prxattrib->bdecrypted=%d\n",prxattrib->bdecrypted); + if ((prxattrib->bdecrypted) && (brpt_micerror)) { + rtw_handle_tkip_mic_err(adapter, (u8)IS_MCAST(prxattrib->ra)); + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, (" mic error :prxattrib->bdecrypted=%d ", prxattrib->bdecrypted)); + DBG_88E(" mic error :prxattrib->bdecrypted=%d\n", prxattrib->bdecrypted); + } else { + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, (" mic error :prxattrib->bdecrypted=%d ", prxattrib->bdecrypted)); + DBG_88E(" mic error :prxattrib->bdecrypted=%d\n", prxattrib->bdecrypted); } - else - { - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,(" mic error :prxattrib->bdecrypted=%d ",prxattrib->bdecrypted)); - DBG_88E(" mic error :prxattrib->bdecrypted=%d\n",prxattrib->bdecrypted); - } - - res=_FAIL; - - } - else{ + res = _FAIL; + } else { /* mic checked ok */ - if ((psecuritypriv->bcheck_grpkey ==false)&&(IS_MCAST(prxattrib->ra)==true)){ - psecuritypriv->bcheck_grpkey =true; - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("psecuritypriv->bcheck_grpkey =true")); + if ((!psecuritypriv->bcheck_grpkey) && (IS_MCAST(prxattrib->ra))) { + psecuritypriv->bcheck_grpkey = true; + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("psecuritypriv->bcheck_grpkey = true")); } } - - } - else - { - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("recvframe_chkmic: rtw_get_stainfo==NULL!!!\n")); + } else { + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("recvframe_chkmic: rtw_get_stainfo==NULL!!!\n")); } recvframe_pull_tail(precvframe, 8); - } exit: @@ -509,50 +476,44 @@ exit: _func_exit_; return res; - } -/* decrypt and set the ivlen,icvlen of the recv_frame */ -union recv_frame * decryptor(struct adapter *padapter,union recv_frame *precv_frame); -union recv_frame * decryptor(struct adapter *padapter,union recv_frame *precv_frame) +/* decrypt and set the ivlen, icvlen of the recv_frame */ +union recv_frame *decryptor(struct adapter *padapter, union recv_frame *precv_frame) { - struct rx_pkt_attrib *prxattrib = &precv_frame->u.hdr.attrib; - struct security_priv *psecuritypriv=&padapter->securitypriv; - union recv_frame *return_packet=precv_frame; - u32 res=_SUCCESS; + struct security_priv *psecuritypriv = &padapter->securitypriv; + union recv_frame *return_packet = precv_frame; + u32 res = _SUCCESS; _func_enter_; - RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("prxstat->decrypted=%x prxattrib->encrypt = 0x%03x\n",prxattrib->bdecrypted,prxattrib->encrypt)); + RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("prxstat->decrypted=%x prxattrib->encrypt=0x%03x\n", prxattrib->bdecrypted, prxattrib->encrypt)); - if (prxattrib->encrypt>0) - { + if (prxattrib->encrypt > 0) { u8 *iv = precv_frame->u.hdr.rx_data+prxattrib->hdrlen; - prxattrib->key_index = ( ((iv[3])>>6)&0x3) ; + prxattrib->key_index = (((iv[3])>>6)&0x3); - if (prxattrib->key_index > WEP_KEYS) - { - DBG_88E("prxattrib->key_index(%d) > WEP_KEYS\n", prxattrib->key_index); + if (prxattrib->key_index > WEP_KEYS) { + DBG_88E("prxattrib->key_index(%d)>WEP_KEYS\n", prxattrib->key_index); - switch (prxattrib->encrypt){ - case _WEP40_: - case _WEP104_: - prxattrib->key_index = psecuritypriv->dot11PrivacyKeyIndex; - break; - case _TKIP_: - case _AES_: - default: - prxattrib->key_index = psecuritypriv->dot118021XGrpKeyid; - break; + switch (prxattrib->encrypt) { + case _WEP40_: + case _WEP104_: + prxattrib->key_index = psecuritypriv->dot11PrivacyKeyIndex; + break; + case _TKIP_: + case _AES_: + default: + prxattrib->key_index = psecuritypriv->dot118021XGrpKeyid; + break; } } } - if ((prxattrib->encrypt>0) && ((prxattrib->bdecrypted==0) ||(psecuritypriv->sw_decrypt==true))) - { - psecuritypriv->hw_decrypted=false; + if ((prxattrib->encrypt > 0) && ((prxattrib->bdecrypted == 0) || (psecuritypriv->sw_decrypt))) { + psecuritypriv->hw_decrypted = false; - switch (prxattrib->encrypt){ + switch (prxattrib->encrypt) { case _WEP40_: case _WEP104_: rtw_wep_decrypt(padapter, (u8 *)precv_frame); @@ -561,18 +522,17 @@ _func_enter_; res = rtw_tkip_decrypt(padapter, (u8 *)precv_frame); break; case _AES_: - res = rtw_aes_decrypt(padapter, (u8 * )precv_frame); + res = rtw_aes_decrypt(padapter, (u8 *)precv_frame); break; default: break; } - } - else if (prxattrib->bdecrypted == 1 && prxattrib->encrypt > 0 && - (psecuritypriv->busetkipkey==1 || prxattrib->encrypt !=_TKIP_)) - psecuritypriv->hw_decrypted=true; + } else if (prxattrib->bdecrypted == 1 && prxattrib->encrypt > 0 && + (psecuritypriv->busetkipkey == 1 || prxattrib->encrypt != _TKIP_)) + psecuritypriv->hw_decrypted = true; if (res == _FAIL) { - rtw_free_recvframe(return_packet,&padapter->recvpriv.free_recv_queue); + rtw_free_recvframe(return_packet, &padapter->recvpriv.free_recv_queue); return_packet = NULL; } @@ -588,9 +548,9 @@ union recv_frame *portctrl(struct adapter *adapter, union recv_frame *precv_fram uint auth_alg; struct recv_frame_hdr *pfhdr; struct sta_info *psta; - struct sta_priv *pstapriv ; + struct sta_priv *pstapriv; union recv_frame *prtnframe; - u16 ether_type=0; + u16 ether_type = 0; u16 eapol_type = 0x888e;/* for Funia BD's WPA issue */ struct rx_pkt_attrib *pattrib; __be16 be_tmp; @@ -609,89 +569,74 @@ _func_enter_; prtnframe = NULL; - RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("########portctrl:adapter->securitypriv.dot11AuthAlgrthm=%d\n",adapter->securitypriv.dot11AuthAlgrthm)); + RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("########portctrl:adapter->securitypriv.dot11AuthAlgrthm=%d\n", adapter->securitypriv.dot11AuthAlgrthm)); - if (auth_alg==2) - { - if ((psta!=NULL) && (psta->ieee8021x_blocked)) - { + if (auth_alg == 2) { + if ((psta != NULL) && (psta->ieee8021x_blocked)) { /* blocked */ /* only accept EAPOL frame */ - RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("########portctrl:psta->ieee8021x_blocked==1\n")); + RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("########portctrl:psta->ieee8021x_blocked==1\n")); - prtnframe=precv_frame; + prtnframe = precv_frame; /* get ether_type */ - ptr=ptr+pfhdr->attrib.hdrlen+pfhdr->attrib.iv_len+LLC_HEADER_SIZE; + ptr = ptr+pfhdr->attrib.hdrlen+pfhdr->attrib.iv_len+LLC_HEADER_SIZE; _rtw_memcpy(&be_tmp, ptr, 2); - ether_type= ntohs(be_tmp); + ether_type = ntohs(be_tmp); - if (ether_type == eapol_type) { - prtnframe=precv_frame; - } - else { + if (ether_type == eapol_type) { + prtnframe = precv_frame; + } else { /* free this frame */ rtw_free_recvframe(precv_frame, &adapter->recvpriv.free_recv_queue); - prtnframe=NULL; + prtnframe = NULL; } - } - else - { + } else { /* allowed */ /* check decryption status, and decrypt the frame if needed */ - RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("########portctrl:psta->ieee8021x_blocked==0\n")); - RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("portctrl:precv_frame->hdr.attrib.privacy=%x\n",precv_frame->u.hdr.attrib.privacy)); + RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("########portctrl:psta->ieee8021x_blocked==0\n")); + RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("portctrl:precv_frame->hdr.attrib.privacy=%x\n", precv_frame->u.hdr.attrib.privacy)); if (pattrib->bdecrypted == 0) - { - RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("portctrl:prxstat->decrypted=%x\n", pattrib->bdecrypted)); - } + RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("portctrl:prxstat->decrypted=%x\n", pattrib->bdecrypted)); - prtnframe=precv_frame; + prtnframe = precv_frame; /* check is the EAPOL frame or not (Rekey) */ - if (ether_type == eapol_type){ - - RT_TRACE(_module_rtl871x_recv_c_,_drv_notice_,("########portctrl:ether_type == 0x888e\n")); + if (ether_type == eapol_type) { + RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_, ("########portctrl:ether_type==0x888e\n")); /* check Rekey */ - prtnframe=precv_frame; - } - else{ - RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("########portctrl:ether_type=0x%04x\n", ether_type)); + prtnframe = precv_frame; + } else { + RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("########portctrl:ether_type=0x%04x\n", ether_type)); } } - } - else - { - prtnframe=precv_frame; + } else { + prtnframe = precv_frame; } _func_exit_; return prtnframe; - } int recv_decache(union recv_frame *precv_frame, u8 bretry, struct stainfo_rxcache *prxcache) { int tid = precv_frame->u.hdr.attrib.priority; - u16 seq_ctrl = ( (precv_frame->u.hdr.attrib.seq_num&0xffff) << 4) | + u16 seq_ctrl = ((precv_frame->u.hdr.attrib.seq_num&0xffff) << 4) | (precv_frame->u.hdr.attrib.frag_num & 0xf); _func_enter_; - if (tid>15) - { + if (tid > 15) { RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_, ("recv_decache, (tid>15)! seq_ctrl=0x%x, tid=0x%x\n", seq_ctrl, tid)); return _FAIL; } - if (1)/* if (bretry) */ - { - if (seq_ctrl == prxcache->tid_rxseq[tid]) - { + if (1) {/* if (bretry) */ + if (seq_ctrl == prxcache->tid_rxseq[tid]) { RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_, ("recv_decache, seq_ctrl=0x%x, tid=0x%x, tid_rxseq=0x%x\n", seq_ctrl, tid, prxcache->tid_rxseq[tid])); return _FAIL; @@ -703,7 +648,6 @@ _func_enter_; _func_exit_; return _SUCCESS; - } void process_pwrbit_data(struct adapter *padapter, union recv_frame *precv_frame); @@ -714,55 +658,36 @@ void process_pwrbit_data(struct adapter *padapter, union recv_frame *precv_frame u8 *ptr = precv_frame->u.hdr.rx_data; struct rx_pkt_attrib *pattrib = &precv_frame->u.hdr.attrib; struct sta_priv *pstapriv = &padapter->stapriv; - struct sta_info *psta=NULL; + struct sta_info *psta = NULL; psta = rtw_get_stainfo(pstapriv, pattrib->src); pwrbit = GetPwrMgt(ptr); - if (psta) - { - if (pwrbit) - { + if (psta) { + if (pwrbit) { if (!(psta->state & WIFI_SLEEP_STATE)) - { - /* psta->state |= WIFI_SLEEP_STATE; */ - /* pstapriv->sta_dz_bitmap |= BIT(psta->aid); */ - stop_sta_xmit(padapter, psta); - - /* DBG_88E("to sleep, sta_dz_bitmap=%x\n", pstapriv->sta_dz_bitmap); */ - } - } - else - { + } else { if (psta->state & WIFI_SLEEP_STATE) - { - /* psta->state ^= WIFI_SLEEP_STATE; */ - /* pstapriv->sta_dz_bitmap &= ~BIT(psta->aid); */ - wakeup_sta_to_xmit(padapter, psta); - - /* DBG_88E("to wakeup, sta_dz_bitmap=%x\n", pstapriv->sta_dz_bitmap); */ - } } - } #endif } -void process_wmmps_data(struct adapter *padapter, union recv_frame *precv_frame); void process_wmmps_data(struct adapter *padapter, union recv_frame *precv_frame) { #ifdef CONFIG_AP_MODE struct rx_pkt_attrib *pattrib = &precv_frame->u.hdr.attrib; struct sta_priv *pstapriv = &padapter->stapriv; - struct sta_info *psta=NULL; + struct sta_info *psta = NULL; psta = rtw_get_stainfo(pstapriv, pattrib->src); - if (!psta) return; + if (!psta) + return; if (!psta->qos_option) return; @@ -771,167 +696,138 @@ void process_wmmps_data(struct adapter *padapter, union recv_frame *precv_frame) return; if (psta->state&WIFI_SLEEP_STATE) { - u8 wmmps_ac=0; + u8 wmmps_ac = 0; - switch (pattrib->priority) - { - case 1: - case 2: - wmmps_ac = psta->uapsd_bk&BIT(1); - break; - case 4: - case 5: - wmmps_ac = psta->uapsd_vi&BIT(1); - break; - case 6: - case 7: - wmmps_ac = psta->uapsd_vo&BIT(1); - break; - case 0: - case 3: - default: - wmmps_ac = psta->uapsd_be&BIT(1); - break; + switch (pattrib->priority) { + case 1: + case 2: + wmmps_ac = psta->uapsd_bk&BIT(1); + break; + case 4: + case 5: + wmmps_ac = psta->uapsd_vi&BIT(1); + break; + case 6: + case 7: + wmmps_ac = psta->uapsd_vo&BIT(1); + break; + case 0: + case 3: + default: + wmmps_ac = psta->uapsd_be&BIT(1); + break; } - if (wmmps_ac) - { - if (psta->sleepq_ac_len>0) - { + if (wmmps_ac) { + if (psta->sleepq_ac_len > 0) { /* process received triggered frame */ xmit_delivery_enabled_frames(padapter, psta); - } - else - { - /* issue one qos null frame with More data bit = 0 and the EOSP bit set (=1) */ + } else { + /* issue one qos null frame with More data bit = 0 and the EOSP bit set (= 1) */ issue_qos_nulldata(padapter, psta->hwaddr, (u16)pattrib->priority, 0, 0); } } - } - #endif - } -void count_rx_stats(struct adapter *padapter, union recv_frame *prframe, struct sta_info*sta) +void count_rx_stats(struct adapter *padapter, union recv_frame *prframe, struct sta_info *sta) { int sz; struct sta_info *psta = NULL; struct stainfo_stats *pstats = NULL; - struct rx_pkt_attrib *pattrib = & prframe->u.hdr.attrib; - struct recv_priv *precvpriv = &padapter->recvpriv; + struct rx_pkt_attrib *pattrib = &prframe->u.hdr.attrib; + struct recv_priv *precvpriv = &padapter->recvpriv; sz = get_recvframe_len(prframe); precvpriv->rx_bytes += sz; padapter->mlmepriv.LinkDetectInfo.NumRxOkInPeriod++; - if ( (!MacAddr_isBcst(pattrib->dst)) && (!IS_MCAST(pattrib->dst))){ + if ((!MacAddr_isBcst(pattrib->dst)) && (!IS_MCAST(pattrib->dst))) padapter->mlmepriv.LinkDetectInfo.NumRxUnicastOkInPeriod++; - } if (sta) psta = sta; else psta = prframe->u.hdr.psta; - if (psta) - { + if (psta) { pstats = &psta->sta_stats; pstats->rx_data_pkts++; pstats->rx_bytes += sz; } - } int sta2sta_data_frame( struct adapter *adapter, union recv_frame *precv_frame, - struct sta_info**psta + struct sta_info **psta ); -int sta2sta_data_frame( - struct adapter *adapter, - union recv_frame *precv_frame, - struct sta_info**psta -) + +int sta2sta_data_frame(struct adapter *adapter, union recv_frame *precv_frame, struct sta_info **psta) { u8 *ptr = precv_frame->u.hdr.rx_data; int ret = _SUCCESS; - struct rx_pkt_attrib *pattrib = & precv_frame->u.hdr.attrib; - struct sta_priv *pstapriv = &adapter->stapriv; - struct mlme_priv *pmlmepriv = &adapter->mlmepriv; + struct rx_pkt_attrib *pattrib = &precv_frame->u.hdr.attrib; + struct sta_priv *pstapriv = &adapter->stapriv; + struct mlme_priv *pmlmepriv = &adapter->mlmepriv; u8 *mybssid = get_bssid(pmlmepriv); u8 *myhwaddr = myid(&adapter->eeprompriv); - u8 * sta_addr = NULL; + u8 *sta_addr = NULL; int bmcast = IS_MCAST(pattrib->dst); _func_enter_; if ((check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == true) || - (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == true)) - { - + (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == true)) { /* filter packets that SA is myself or multicast or broadcast */ - if (_rtw_memcmp(myhwaddr, pattrib->src, ETH_ALEN)){ - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,(" SA==myself\n")); - ret= _FAIL; + if (_rtw_memcmp(myhwaddr, pattrib->src, ETH_ALEN)) { + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, (" SA==myself\n")); + ret = _FAIL; goto exit; } - if ( (!_rtw_memcmp(myhwaddr, pattrib->dst, ETH_ALEN)) && (!bmcast) ){ - ret= _FAIL; + if ((!_rtw_memcmp(myhwaddr, pattrib->dst, ETH_ALEN)) && (!bmcast)) { + ret = _FAIL; goto exit; } - if ( _rtw_memcmp(pattrib->bssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) || - _rtw_memcmp(mybssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) || - (!_rtw_memcmp(pattrib->bssid, mybssid, ETH_ALEN)) ) { - ret= _FAIL; + if (_rtw_memcmp(pattrib->bssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) || + _rtw_memcmp(mybssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) || + !_rtw_memcmp(pattrib->bssid, mybssid, ETH_ALEN)) { + ret = _FAIL; goto exit; } sta_addr = pattrib->src; - - } - else if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) == true) - { + } else if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) { /* For Station mode, sa and bssid should always be BSSID, and DA is my mac-address */ - if (!_rtw_memcmp(pattrib->bssid, pattrib->src, ETH_ALEN) ) - { - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("bssid != TA under STATION_MODE; drop pkt\n")); - ret= _FAIL; + if (!_rtw_memcmp(pattrib->bssid, pattrib->src, ETH_ALEN)) { + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("bssid!=TA under STATION_MODE; drop pkt\n")); + ret = _FAIL; goto exit; } sta_addr = pattrib->bssid; - - } - else if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == true) - { - if (bmcast) - { + } else if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) { + if (bmcast) { /* For AP mode, if DA == MCAST, then BSSID should be also MCAST */ - if (!IS_MCAST(pattrib->bssid)){ - ret= _FAIL; + if (!IS_MCAST(pattrib->bssid)) { + ret = _FAIL; goto exit; } - } - else /* not mc-frame */ - { + } else { /* not mc-frame */ /* For AP mode, if DA is non-MCAST, then it must be BSSID, and bssid == BSSID */ if (!_rtw_memcmp(pattrib->bssid, pattrib->dst, ETH_ALEN)) { - ret= _FAIL; + ret = _FAIL; goto exit; } sta_addr = pattrib->src; } - - } - else if (check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) - { + } else if (check_fwstate(pmlmepriv, WIFI_MP_STATE)) { _rtw_memcpy(pattrib->dst, GetAddr1Ptr(ptr), ETH_ALEN); _rtw_memcpy(pattrib->src, GetAddr2Ptr(ptr), ETH_ALEN); _rtw_memcpy(pattrib->bssid, GetAddr3Ptr(ptr), ETH_ALEN); @@ -939,91 +835,78 @@ _func_enter_; _rtw_memcpy(pattrib->ta, pattrib->src, ETH_ALEN); sta_addr = mybssid; - } - else - { + } else { ret = _FAIL; } - - if (bmcast) *psta = rtw_get_bcmc_stainfo(adapter); else *psta = rtw_get_stainfo(pstapriv, sta_addr); /* get ap_info */ if (*psta == NULL) { - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("can't get psta under sta2sta_data_frame ; drop pkt\n")); - if (adapter->registrypriv.mp_mode == 1) - { + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("can't get psta under sta2sta_data_frame ; drop pkt\n")); + if (adapter->registrypriv.mp_mode == 1) { if (check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) adapter->mppriv.rx_pktloss++; } - ret= _FAIL; + ret = _FAIL; goto exit; } exit: _func_exit_; return ret; - } int ap2sta_data_frame( struct adapter *adapter, union recv_frame *precv_frame, - struct sta_info**psta ) + struct sta_info **psta) { u8 *ptr = precv_frame->u.hdr.rx_data; - struct rx_pkt_attrib *pattrib = & precv_frame->u.hdr.attrib; + struct rx_pkt_attrib *pattrib = &precv_frame->u.hdr.attrib; int ret = _SUCCESS; - struct sta_priv *pstapriv = &adapter->stapriv; - struct mlme_priv *pmlmepriv = &adapter->mlmepriv; + struct sta_priv *pstapriv = &adapter->stapriv; + struct mlme_priv *pmlmepriv = &adapter->mlmepriv; u8 *mybssid = get_bssid(pmlmepriv); u8 *myhwaddr = myid(&adapter->eeprompriv); int bmcast = IS_MCAST(pattrib->dst); _func_enter_; - if ((check_fwstate(pmlmepriv, WIFI_STATION_STATE) == true) - && (check_fwstate(pmlmepriv, _FW_LINKED) == true - || check_fwstate(pmlmepriv, _FW_UNDER_LINKING) == true ) - ) - { - + if ((check_fwstate(pmlmepriv, WIFI_STATION_STATE) == true) && + (check_fwstate(pmlmepriv, _FW_LINKED) == true || + check_fwstate(pmlmepriv, _FW_UNDER_LINKING))) { /* filter packets that SA is myself or multicast or broadcast */ - if (_rtw_memcmp(myhwaddr, pattrib->src, ETH_ALEN)){ - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,(" SA==myself\n")); - ret= _FAIL; + if (_rtw_memcmp(myhwaddr, pattrib->src, ETH_ALEN)) { + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, (" SA==myself\n")); + ret = _FAIL; goto exit; } /* da should be for me */ - if ((!_rtw_memcmp(myhwaddr, pattrib->dst, ETH_ALEN))&& (!bmcast)) - { - RT_TRACE(_module_rtl871x_recv_c_,_drv_info_, - (" ap2sta_data_frame: compare DA fail; DA=%pM\n", (pattrib->dst))); - ret= _FAIL; + if ((!_rtw_memcmp(myhwaddr, pattrib->dst, ETH_ALEN)) && (!bmcast)) { + RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, + (" ap2sta_data_frame: compare DA fail; DA=%pM\n", (pattrib->dst))); + ret = _FAIL; goto exit; } - /* check BSSID */ - if ( _rtw_memcmp(pattrib->bssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) || - _rtw_memcmp(mybssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) || - (!_rtw_memcmp(pattrib->bssid, mybssid, ETH_ALEN)) ) - { - RT_TRACE(_module_rtl871x_recv_c_,_drv_info_, - (" ap2sta_data_frame: compare BSSID fail ; BSSID=%pM\n", (pattrib->bssid))); - RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("mybssid=%pM\n", (mybssid))); + if (_rtw_memcmp(pattrib->bssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) || + _rtw_memcmp(mybssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) || + (!_rtw_memcmp(pattrib->bssid, mybssid, ETH_ALEN))) { + RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, + (" ap2sta_data_frame: compare BSSID fail ; BSSID=%pM\n", (pattrib->bssid))); + RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("mybssid=%pM\n", (mybssid))); - if (!bmcast) - { + if (!bmcast) { DBG_88E("issue_deauth to the nonassociated ap=%pM for the reason(7)\n", (pattrib->bssid)); issue_deauth(adapter, pattrib->bssid, WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA); } - ret= _FAIL; + ret = _FAIL; goto exit; } @@ -1033,8 +916,8 @@ _func_enter_; *psta = rtw_get_stainfo(pstapriv, pattrib->bssid); /* get ap_info */ if (*psta == NULL) { - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("ap2sta: can't get psta under STATION_MODE ; drop pkt\n")); - ret= _FAIL; + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("ap2sta: can't get psta under STATION_MODE ; drop pkt\n")); + ret = _FAIL; goto exit; } @@ -1047,11 +930,8 @@ _func_enter_; ret = RTW_RX_HANDLED; goto exit; } - - } - else if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) && - (check_fwstate(pmlmepriv, _FW_LINKED) == true) ) - { + } else if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) && + (check_fwstate(pmlmepriv, _FW_LINKED) == true)) { _rtw_memcpy(pattrib->dst, GetAddr1Ptr(ptr), ETH_ALEN); _rtw_memcpy(pattrib->src, GetAddr2Ptr(ptr), ETH_ALEN); _rtw_memcpy(pattrib->bssid, GetAddr3Ptr(ptr), ETH_ALEN); @@ -1061,30 +941,21 @@ _func_enter_; /* */ _rtw_memcpy(pattrib->bssid, mybssid, ETH_ALEN); - *psta = rtw_get_stainfo(pstapriv, pattrib->bssid); /* get sta_info */ if (*psta == NULL) { - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("can't get psta under MP_MODE ; drop pkt\n")); - ret= _FAIL; + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("can't get psta under MP_MODE ; drop pkt\n")); + ret = _FAIL; goto exit; } - - - } - else if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == true) - { + } else if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) { /* Special case */ ret = RTW_RX_HANDLED; goto exit; - } - else - { - if (_rtw_memcmp(myhwaddr, pattrib->dst, ETH_ALEN)&& (!bmcast)) - { + } else { + if (_rtw_memcmp(myhwaddr, pattrib->dst, ETH_ALEN) && (!bmcast)) { *psta = rtw_get_stainfo(pstapriv, pattrib->bssid); /* get sta_info */ - if (*psta == NULL) - { - DBG_88E("issue_deauth to the ap=%pM for the reason(7)\n", (pattrib->bssid)); + if (*psta == NULL) { + DBG_88E("issue_deauth to the ap =%pM for the reason(7)\n", (pattrib->bssid)); issue_deauth(adapter, pattrib->bssid, WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA); } @@ -1098,36 +969,29 @@ exit: _func_exit_; return ret; - } -int sta2ap_data_frame( - struct adapter *adapter, - union recv_frame *precv_frame, - struct sta_info**psta ) +int sta2ap_data_frame(struct adapter *adapter, union recv_frame *precv_frame, struct sta_info **psta) { u8 *ptr = precv_frame->u.hdr.rx_data; - struct rx_pkt_attrib *pattrib = & precv_frame->u.hdr.attrib; - struct sta_priv *pstapriv = &adapter->stapriv; - struct mlme_priv *pmlmepriv = &adapter->mlmepriv; + struct rx_pkt_attrib *pattrib = &precv_frame->u.hdr.attrib; + struct sta_priv *pstapriv = &adapter->stapriv; + struct mlme_priv *pmlmepriv = &adapter->mlmepriv; unsigned char *mybssid = get_bssid(pmlmepriv); - int ret=_SUCCESS; + int ret = _SUCCESS; _func_enter_; - if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == true) - { - /* For AP mode, RA=BSSID, TX=STA(SRC_ADDR), A3=DST_ADDR */ - if (!_rtw_memcmp(pattrib->bssid, mybssid, ETH_ALEN)) - { - ret= _FAIL; + if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == true) { + /* For AP mode, RA = BSSID, TX = STA(SRC_ADDR), A3 = DST_ADDR */ + if (!_rtw_memcmp(pattrib->bssid, mybssid, ETH_ALEN)) { + ret = _FAIL; goto exit; } *psta = rtw_get_stainfo(pstapriv, pattrib->src); - if (*psta == NULL) - { - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("can't get psta under AP_MODE; drop pkt\n")); + if (*psta == NULL) { + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("can't get psta under AP_MODE; drop pkt\n")); DBG_88E("issue_deauth to sta=%pM for the reason(7)\n", (pattrib->src)); issue_deauth(adapter, pattrib->src, WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA); @@ -1148,8 +1012,7 @@ _func_enter_; ret = RTW_RX_HANDLED; goto exit; } - } - else { + } else { u8 *myhwaddr = myid(&adapter->eeprompriv); if (!_rtw_memcmp(pattrib->ra, myhwaddr, ETH_ALEN)) { ret = RTW_RX_HANDLED; @@ -1166,7 +1029,6 @@ exit: _func_exit_; return ret; - } int validate_recv_ctrl_frame(struct adapter *padapter, union recv_frame *precv_frame) @@ -1177,81 +1039,68 @@ int validate_recv_ctrl_frame(struct adapter *padapter, union recv_frame *precv_f u8 *pframe = precv_frame->u.hdr.rx_data; /* uint len = precv_frame->u.hdr.len; */ - /* DBG_88E("+validate_recv_ctrl_frame\n"); */ - if (GetFrameType(pframe) != WIFI_CTRL_TYPE) - { return _FAIL; - } /* receive the frames that ra(a1) is my address */ if (!_rtw_memcmp(GetAddr1Ptr(pframe), myid(&padapter->eeprompriv), ETH_ALEN)) - { return _FAIL; - } /* only handle ps-poll */ - if (GetFrameSubType(pframe) == WIFI_PSPOLL) - { + if (GetFrameSubType(pframe) == WIFI_PSPOLL) { u16 aid; - u8 wmmps_ac=0; - struct sta_info *psta=NULL; + u8 wmmps_ac = 0; + struct sta_info *psta = NULL; aid = GetAid(pframe); psta = rtw_get_stainfo(pstapriv, GetAddr2Ptr(pframe)); - if ((psta==NULL) || (psta->aid!=aid)) - { + if ((psta == NULL) || (psta->aid != aid)) return _FAIL; - } /* for rx pkt statistics */ psta->sta_stats.rx_ctrl_pkts++; - switch (pattrib->priority) - { - case 1: - case 2: - wmmps_ac = psta->uapsd_bk&BIT(0); - break; - case 4: - case 5: - wmmps_ac = psta->uapsd_vi&BIT(0); - break; - case 6: - case 7: - wmmps_ac = psta->uapsd_vo&BIT(0); - break; - case 0: - case 3: - default: - wmmps_ac = psta->uapsd_be&BIT(0); - break; + switch (pattrib->priority) { + case 1: + case 2: + wmmps_ac = psta->uapsd_bk&BIT(0); + break; + case 4: + case 5: + wmmps_ac = psta->uapsd_vi&BIT(0); + break; + case 6: + case 7: + wmmps_ac = psta->uapsd_vo&BIT(0); + break; + case 0: + case 3: + default: + wmmps_ac = psta->uapsd_be&BIT(0); + break; } if (wmmps_ac) return _FAIL; - if (psta->state & WIFI_STA_ALIVE_CHK_STATE) - { + if (psta->state & WIFI_STA_ALIVE_CHK_STATE) { DBG_88E("%s alive check-rx ps-poll\n", __func__); psta->expire_to = pstapriv->expire_to; psta->state ^= WIFI_STA_ALIVE_CHK_STATE; } - if ((psta->state&WIFI_SLEEP_STATE) && (pstapriv->sta_dz_bitmap&BIT(psta->aid))) - { + if ((psta->state&WIFI_SLEEP_STATE) && (pstapriv->sta_dz_bitmap&BIT(psta->aid))) { unsigned long irqL; struct list_head *xmitframe_plist, *xmitframe_phead; - struct xmit_frame *pxmitframe=NULL; + struct xmit_frame *pxmitframe = NULL; _enter_critical_bh(&psta->sleep_q.lock, &irqL); xmitframe_phead = get_list_head(&psta->sleep_q); xmitframe_plist = get_next(xmitframe_phead); - if ((rtw_end_of_queue_search(xmitframe_phead, xmitframe_plist)) == false) - { + if ((rtw_end_of_queue_search(xmitframe_phead, xmitframe_plist)) == false) { pxmitframe = LIST_CONTAINOR(xmitframe_plist, struct xmit_frame, list); xmitframe_plist = get_next(xmitframe_plist); @@ -1260,50 +1109,35 @@ int validate_recv_ctrl_frame(struct adapter *padapter, union recv_frame *precv_f psta->sleepq_len--; - if (psta->sleepq_len>0) + if (psta->sleepq_len > 0) pxmitframe->attrib.mdata = 1; - else + else pxmitframe->attrib.mdata = 0; pxmitframe->attrib.triggered = 1; - /* DBG_88E("handling ps-poll, q_len=%d, tim=%x\n", psta->sleepq_len, pstapriv->tim_bitmap); */ - - _exit_critical_bh(&psta->sleep_q.lock, &irqL); + _exit_critical_bh(&psta->sleep_q.lock, &irqL); if (rtw_hal_xmit(padapter, pxmitframe) == true) - { rtw_os_xmit_complete(padapter, pxmitframe); - } - _enter_critical_bh(&psta->sleep_q.lock, &irqL); + _enter_critical_bh(&psta->sleep_q.lock, &irqL); - if (psta->sleepq_len==0) - { + if (psta->sleepq_len == 0) { pstapriv->tim_bitmap &= ~BIT(psta->aid); - /* DBG_88E("after handling ps-poll, tim=%x\n", pstapriv->tim_bitmap); */ - /* upate BCN for TIM IE */ /* update_BCNTIM(padapter); */ update_beacon(padapter, _TIM_IE_, NULL, false); } - - } - else - { - /* DBG_88E("no buffered packets to xmit\n"); */ - if (pstapriv->tim_bitmap&BIT(psta->aid)) - { - if (psta->sleepq_len==0) - { + } else { + if (pstapriv->tim_bitmap&BIT(psta->aid)) { + if (psta->sleepq_len == 0) { DBG_88E("no buffered packets to xmit\n"); /* issue nulldata with More data bit = 0 to indicate we have no buffered packets */ issue_nulldata(padapter, psta->hwaddr, 0, 0, 0); - } - else - { + } else { DBG_88E("error!psta->sleepq_len=%d\n", psta->sleepq_len); - psta->sleepq_len=0; + psta->sleepq_len = 0; } pstapriv->tim_bitmap &= ~BIT(psta->aid); @@ -1312,32 +1146,26 @@ int validate_recv_ctrl_frame(struct adapter *padapter, union recv_frame *precv_f /* update_BCNTIM(padapter); */ update_beacon(padapter, _TIM_IE_, NULL, false); } - } _exit_critical_bh(&psta->sleep_q.lock, &irqL); - } - } #endif return _FAIL; - } -union recv_frame* recvframe_chk_defrag(struct adapter * padapter, union recv_frame *precv_frame); +union recv_frame *recvframe_chk_defrag(struct adapter *padapter, union recv_frame *precv_frame); -int validate_recv_mgnt_frame(struct adapter * padapter, union recv_frame *precv_frame) +int validate_recv_mgnt_frame(struct adapter *padapter, union recv_frame *precv_frame) { - /* struct mlme_priv *pmlmepriv = &adapter->mlmepriv; */ - RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("+validate_recv_mgnt_frame\n")); precv_frame = recvframe_chk_defrag(padapter, precv_frame); if (precv_frame == NULL) { - RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_,("%s: fragment packet\n",__func__)); + RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_, ("%s: fragment packet\n", __func__)); return _SUCCESS; } @@ -1346,15 +1174,15 @@ int validate_recv_mgnt_frame(struct adapter * padapter, union recv_frame *precv_ struct sta_info *psta = rtw_get_stainfo(&padapter->stapriv, GetAddr2Ptr(precv_frame->u.hdr.rx_data)); if (psta) { psta->sta_stats.rx_mgnt_pkts++; - if (GetFrameSubType(precv_frame->u.hdr.rx_data) == WIFI_BEACON) + if (GetFrameSubType(precv_frame->u.hdr.rx_data) == WIFI_BEACON) { psta->sta_stats.rx_beacon_pkts++; - else if (GetFrameSubType(precv_frame->u.hdr.rx_data) == WIFI_PROBEREQ) + } else if (GetFrameSubType(precv_frame->u.hdr.rx_data) == WIFI_PROBEREQ) { psta->sta_stats.rx_probereq_pkts++; - else if (GetFrameSubType(precv_frame->u.hdr.rx_data) == WIFI_PROBERSP) { + } else if (GetFrameSubType(precv_frame->u.hdr.rx_data) == WIFI_PROBERSP) { if (_rtw_memcmp(padapter->eeprompriv.mac_addr, GetAddr1Ptr(precv_frame->u.hdr.rx_data), ETH_ALEN) == true) psta->sta_stats.rx_probersp_pkts++; - else if (is_broadcast_mac_addr(GetAddr1Ptr(precv_frame->u.hdr.rx_data)) - || is_multicast_mac_addr(GetAddr1Ptr(precv_frame->u.hdr.rx_data))) + else if (is_broadcast_mac_addr(GetAddr1Ptr(precv_frame->u.hdr.rx_data)) || + is_multicast_mac_addr(GetAddr1Ptr(precv_frame->u.hdr.rx_data))) psta->sta_stats.rx_probersp_bm_pkts++; else psta->sta_stats.rx_probersp_uo_pkts++; @@ -1373,7 +1201,7 @@ int validate_recv_data_frame(struct adapter *adapter, union recv_frame *precv_fr u8 *psa, *pda, *pbssid; struct sta_info *psta = NULL; u8 *ptr = precv_frame->u.hdr.rx_data; - struct rx_pkt_attrib *pattrib = & precv_frame->u.hdr.attrib; + struct rx_pkt_attrib *pattrib = &precv_frame->u.hdr.attrib; struct sta_priv *pstapriv = &adapter->stapriv; struct security_priv *psecuritypriv = &adapter->securitypriv; int ret = _SUCCESS; @@ -1385,8 +1213,8 @@ _func_enter_; psa = get_sa(ptr); pbssid = get_hdr_bssid(ptr); - if (pbssid == NULL){ - ret= _FAIL; + if (pbssid == NULL) { + ret = _FAIL; goto exit; } @@ -1395,109 +1223,90 @@ _func_enter_; _rtw_memcpy(pattrib->bssid, pbssid, ETH_ALEN); - switch (pattrib->to_fr_ds) - { - case 0: - _rtw_memcpy(pattrib->ra, pda, ETH_ALEN); - _rtw_memcpy(pattrib->ta, psa, ETH_ALEN); - ret = sta2sta_data_frame(adapter, precv_frame, &psta); - break; - - case 1: - _rtw_memcpy(pattrib->ra, pda, ETH_ALEN); - _rtw_memcpy(pattrib->ta, pbssid, ETH_ALEN); - ret = ap2sta_data_frame(adapter, precv_frame, &psta); - break; - - case 2: - _rtw_memcpy(pattrib->ra, pbssid, ETH_ALEN); - _rtw_memcpy(pattrib->ta, psa, ETH_ALEN); - ret = sta2ap_data_frame(adapter, precv_frame, &psta); - break; - - case 3: - _rtw_memcpy(pattrib->ra, GetAddr1Ptr(ptr), ETH_ALEN); - _rtw_memcpy(pattrib->ta, GetAddr2Ptr(ptr), ETH_ALEN); - ret =_FAIL; - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,(" case 3\n")); - break; - - default: - ret =_FAIL; - break; - + switch (pattrib->to_fr_ds) { + case 0: + _rtw_memcpy(pattrib->ra, pda, ETH_ALEN); + _rtw_memcpy(pattrib->ta, psa, ETH_ALEN); + ret = sta2sta_data_frame(adapter, precv_frame, &psta); + break; + case 1: + _rtw_memcpy(pattrib->ra, pda, ETH_ALEN); + _rtw_memcpy(pattrib->ta, pbssid, ETH_ALEN); + ret = ap2sta_data_frame(adapter, precv_frame, &psta); + break; + case 2: + _rtw_memcpy(pattrib->ra, pbssid, ETH_ALEN); + _rtw_memcpy(pattrib->ta, psa, ETH_ALEN); + ret = sta2ap_data_frame(adapter, precv_frame, &psta); + break; + case 3: + _rtw_memcpy(pattrib->ra, GetAddr1Ptr(ptr), ETH_ALEN); + _rtw_memcpy(pattrib->ta, GetAddr2Ptr(ptr), ETH_ALEN); + ret = _FAIL; + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, (" case 3\n")); + break; + default: + ret = _FAIL; + break; } - if (ret ==_FAIL){ + if (ret == _FAIL) { goto exit; } else if (ret == RTW_RX_HANDLED) { goto exit; } - - if (psta==NULL){ - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,(" after to_fr_ds_chk; psta==NULL\n")); - ret= _FAIL; + if (psta == NULL) { + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, (" after to_fr_ds_chk; psta==NULL\n")); + ret = _FAIL; goto exit; } /* psta->rssi = prxcmd->rssi; */ - /* psta->signal_quality= prxcmd->sq; */ + /* psta->signal_quality = prxcmd->sq; */ precv_frame->u.hdr.psta = psta; - - pattrib->amsdu=0; + pattrib->amsdu = 0; pattrib->ack_policy = 0; /* parsing QC field */ - if (pattrib->qos == 1) - { + if (pattrib->qos == 1) { pattrib->priority = GetPriority((ptr + 24)); pattrib->ack_policy = GetAckpolicy((ptr + 24)); pattrib->amsdu = GetAMsdu((ptr + 24)); - pattrib->hdrlen = pattrib->to_fr_ds==3 ? 32 : 26; + pattrib->hdrlen = pattrib->to_fr_ds == 3 ? 32 : 26; - if (pattrib->priority!=0 && pattrib->priority!=3) - { + if (pattrib->priority != 0 && pattrib->priority != 3) adapter->recvpriv.bIsAnyNonBEPkts = true; - } + } else { + pattrib->priority = 0; + pattrib->hdrlen = pattrib->to_fr_ds == 3 ? 30 : 24; } - else - { - pattrib->priority=0; - pattrib->hdrlen = pattrib->to_fr_ds==3 ? 30 : 24; - } - if (pattrib->order)/* HT-CTRL 11n */ - { pattrib->hdrlen += 4; - } precv_frame->u.hdr.preorder_ctrl = &psta->recvreorder_ctrl[pattrib->priority]; /* decache, drop duplicate recv packets */ - if (recv_decache(precv_frame, bretry, &psta->sta_recvpriv.rxcache) == _FAIL) - { - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("decache : drop pkt\n")); - ret= _FAIL; + if (recv_decache(precv_frame, bretry, &psta->sta_recvpriv.rxcache) == _FAIL) { + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("decache : drop pkt\n")); + ret = _FAIL; goto exit; } - if (pattrib->privacy){ - - RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("validate_recv_data_frame:pattrib->privacy=%x\n", pattrib->privacy)); - RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("\n ^^^^^^^^^^^IS_MCAST(pattrib->ra(0x%02x))=%d^^^^^^^^^^^^^^^6\n", pattrib->ra[0],IS_MCAST(pattrib->ra))); + if (pattrib->privacy) { + RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("validate_recv_data_frame:pattrib->privacy=%x\n", pattrib->privacy)); + RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("\n ^^^^^^^^^^^IS_MCAST(pattrib->ra(0x%02x))=%d^^^^^^^^^^^^^^^6\n", pattrib->ra[0], IS_MCAST(pattrib->ra))); GET_ENCRY_ALGO(psecuritypriv, psta, pattrib->encrypt, IS_MCAST(pattrib->ra)); - RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("\n pattrib->encrypt=%d\n",pattrib->encrypt)); + RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("\n pattrib->encrypt=%d\n", pattrib->encrypt)); SET_ICE_IV_LEN(pattrib->iv_len, pattrib->icv_len, pattrib->encrypt); - } - else - { + } else { pattrib->encrypt = 0; - pattrib->iv_len = pattrib->icv_len = 0; + pattrib->iv_len = 0; + pattrib->icv_len = 0; } exit: @@ -1517,9 +1326,9 @@ int validate_recv_frame(struct adapter *adapter, union recv_frame *precv_frame) u8 subtype; int retval = _SUCCESS; u8 bDumpRxPkt; - struct rx_pkt_attrib *pattrib = & precv_frame->u.hdr.attrib; + struct rx_pkt_attrib *pattrib = &precv_frame->u.hdr.attrib; u8 *ptr = precv_frame->u.hdr.rx_data; - u8 ver =(unsigned char) (*ptr)&0x3 ; + u8 ver = (unsigned char) (*ptr)&0x3; struct mlme_ext_priv *pmlmeext = &adapter->mlmeextpriv; _func_enter_; @@ -1531,9 +1340,9 @@ _func_enter_; } /* add version chk */ - if (ver!=0){ - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("validate_recv_data_frame fail! (ver!=0)\n")); - retval= _FAIL; + if (ver != 0) { + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("validate_recv_data_frame fail! (ver!=0)\n")); + retval = _FAIL; goto exit; } @@ -1553,33 +1362,32 @@ _func_enter_; /* Dump rx packets */ rtw_hal_get_def_var(adapter, HAL_DEF_DBG_DUMP_RXPKT, &(bDumpRxPkt)); - if (bDumpRxPkt ==1){/* dump all rx packets */ + if (bDumpRxPkt == 1) {/* dump all rx packets */ int i; DBG_88E("#############################\n"); - for (i=0; i<64;i=i+8) + for (i = 0; i < 64; i = i+8) DBG_88E("%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:\n", *(ptr+i), - *(ptr+i+1), *(ptr+i+2) ,*(ptr+i+3) ,*(ptr+i+4),*(ptr+i+5), *(ptr+i+6), *(ptr+i+7)); + *(ptr+i+1), *(ptr+i+2), *(ptr+i+3), *(ptr+i+4), *(ptr+i+5), *(ptr+i+6), *(ptr+i+7)); DBG_88E("#############################\n"); - } - else if (bDumpRxPkt ==2){ - if (type== WIFI_MGT_TYPE){ + } else if (bDumpRxPkt == 2) { + if (type == WIFI_MGT_TYPE) { int i; DBG_88E("#############################\n"); - for (i=0; i<64;i=i+8) + for (i = 0; i < 64; i = i+8) DBG_88E("%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:\n", *(ptr+i), - *(ptr+i+1), *(ptr+i+2) ,*(ptr+i+3) ,*(ptr+i+4),*(ptr+i+5), *(ptr+i+6), *(ptr+i+7)); + *(ptr+i+1), *(ptr+i+2), *(ptr+i+3), *(ptr+i+4), *(ptr+i+5), *(ptr+i+6), *(ptr+i+7)); DBG_88E("#############################\n"); } - } else if (bDumpRxPkt ==3){ - if (type== WIFI_DATA_TYPE){ + } else if (bDumpRxPkt == 3) { + if (type == WIFI_DATA_TYPE) { int i; DBG_88E("#############################\n"); - for (i=0; i<64;i=i+8) + for (i = 0; i < 64; i = i+8) DBG_88E("%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:\n", *(ptr+i), - *(ptr+i+1), *(ptr+i+2) ,*(ptr+i+3) ,*(ptr+i+4),*(ptr+i+5), *(ptr+i+6), *(ptr+i+7)); + *(ptr+i+1), *(ptr+i+2), *(ptr+i+3), *(ptr+i+4), *(ptr+i+5), *(ptr+i+6), *(ptr+i+7)); DBG_88E("#############################\n"); } } @@ -1587,22 +1395,18 @@ _func_enter_; case WIFI_MGT_TYPE: /* mgnt */ retval = validate_recv_mgnt_frame(adapter, precv_frame); if (retval == _FAIL) - { - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("validate_recv_mgnt_frame fail\n")); - } + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("validate_recv_mgnt_frame fail\n")); retval = _FAIL; /* only data frame return _SUCCESS */ break; case WIFI_CTRL_TYPE: /* ctrl */ retval = validate_recv_ctrl_frame(adapter, precv_frame); if (retval == _FAIL) - { - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("validate_recv_ctrl_frame fail\n")); - } + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("validate_recv_ctrl_frame fail\n")); retval = _FAIL; /* only data frame return _SUCCESS */ break; case WIFI_DATA_TYPE: /* data */ rtw_led_control(adapter, LED_CTL_RX); - pattrib->qos = (subtype & BIT(7))? 1:0; + pattrib->qos = (subtype & BIT(7)) ? 1 : 0; retval = validate_recv_data_frame(adapter, precv_frame); if (retval == _FAIL) { struct recv_priv *precvpriv = &adapter->recvpriv; @@ -1610,7 +1414,7 @@ _func_enter_; } break; default: - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("validate_recv_data_frame fail! type=0x%x\n", type)); + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("validate_recv_data_frame fail! type= 0x%x\n", type)); retval = _FAIL; break; } @@ -1622,10 +1426,9 @@ _func_exit_; return retval; } - /* remove the wlanhdr and add the eth_hdr */ -int wlanhdr_to_ethhdr ( union recv_frame *precvframe) +int wlanhdr_to_ethhdr (union recv_frame *precvframe) { int rmv_len; u16 eth_type, len; @@ -1634,28 +1437,25 @@ int wlanhdr_to_ethhdr ( union recv_frame *precvframe) u8 *psnap_type; struct ieee80211_snap_hdr *psnap; - int ret=_SUCCESS; - struct adapter *adapter =precvframe->u.hdr.adapter; + int ret = _SUCCESS; + struct adapter *adapter = precvframe->u.hdr.adapter; struct mlme_priv *pmlmepriv = &adapter->mlmepriv; - u8 *ptr = get_recvframe_data(precvframe) ; /* point to frame_ctrl field */ - struct rx_pkt_attrib *pattrib = & precvframe->u.hdr.attrib; + u8 *ptr = get_recvframe_data(precvframe); /* point to frame_ctrl field */ + struct rx_pkt_attrib *pattrib = &precvframe->u.hdr.attrib; _func_enter_; - if (pattrib->encrypt){ + if (pattrib->encrypt) recvframe_pull_tail(precvframe, pattrib->icv_len); - } - psnap=(struct ieee80211_snap_hdr *)(ptr+pattrib->hdrlen + pattrib->iv_len); - psnap_type=ptr+pattrib->hdrlen + pattrib->iv_len+SNAP_SIZE; + psnap = (struct ieee80211_snap_hdr *)(ptr+pattrib->hdrlen + pattrib->iv_len); + psnap_type = ptr+pattrib->hdrlen + pattrib->iv_len+SNAP_SIZE; /* convert hdr + possible LLC headers into Ethernet header */ - /* eth_type = (psnap_type[0] << 8) | psnap_type[1]; */ if ((_rtw_memcmp(psnap, rtw_rfc1042_header, SNAP_SIZE) && - (_rtw_memcmp(psnap_type, SNAP_ETH_TYPE_IPX, 2) == false) && - (_rtw_memcmp(psnap_type, SNAP_ETH_TYPE_APPLETALK_AARP, 2)==false) )|| - /* eth_type != ETH_P_AARP && eth_type != ETH_P_IPX) || */ - _rtw_memcmp(psnap, rtw_bridge_tunnel_header, SNAP_SIZE)){ + (_rtw_memcmp(psnap_type, SNAP_ETH_TYPE_IPX, 2) == false) && + (_rtw_memcmp(psnap_type, SNAP_ETH_TYPE_APPLETALK_AARP, 2) == false)) || + _rtw_memcmp(psnap, rtw_bridge_tunnel_header, SNAP_SIZE)) { /* remove RFC1042 or Bridge-Tunnel encapsulation and replace EtherType */ bsnaphdr = true; } else { @@ -1663,17 +1463,18 @@ _func_enter_; bsnaphdr = false; } - rmv_len = pattrib->hdrlen + pattrib->iv_len +(bsnaphdr?SNAP_SIZE:0); + rmv_len = pattrib->hdrlen + pattrib->iv_len + (bsnaphdr ? SNAP_SIZE : 0); len = precvframe->u.hdr.len - rmv_len; - RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("\n===pattrib->hdrlen: %x, pattrib->iv_len:%x ===\n\n", pattrib->hdrlen, pattrib->iv_len)); + RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, + ("\n===pattrib->hdrlen: %x, pattrib->iv_len:%x===\n\n", pattrib->hdrlen, pattrib->iv_len)); _rtw_memcpy(&be_tmp, ptr+rmv_len, 2); eth_type = ntohs(be_tmp); /* pattrib->ether_type */ pattrib->eth_type = eth_type; - if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == true)) { - ptr += rmv_len ; + if ((check_fwstate(pmlmepriv, WIFI_MP_STATE))) { + ptr += rmv_len; *ptr = 0x87; *(ptr+1) = 0x12; @@ -1681,10 +1482,9 @@ _func_enter_; /* append rx status for mp test packets */ ptr = recvframe_pull(precvframe, (rmv_len-sizeof(struct ethhdr)+2)-24); _rtw_memcpy(ptr, get_rxmem(precvframe), 24); - ptr+=24; - } - else { - ptr = recvframe_pull(precvframe, (rmv_len-sizeof(struct ethhdr)+ (bsnaphdr?2:0))); + ptr += 24; + } else { + ptr = recvframe_pull(precvframe, (rmv_len-sizeof(struct ethhdr) + (bsnaphdr ? 2 : 0))); } _rtw_memcpy(ptr, pattrib->dst, ETH_ALEN); @@ -1697,7 +1497,6 @@ _func_enter_; _func_exit_; return ret; - } /* perform defrag */ @@ -1706,23 +1505,22 @@ union recv_frame *recvframe_defrag(struct adapter *adapter, struct __queue *defr struct list_head *plist, *phead; u8 wlanhdr_offset; u8 curfragnum; - struct recv_frame_hdr *pfhdr,*pnfhdr; - union recv_frame* prframe, *pnextrframe; + struct recv_frame_hdr *pfhdr, *pnfhdr; + union recv_frame *prframe, *pnextrframe; struct __queue *pfree_recv_queue; _func_enter_; - curfragnum=0; - pfree_recv_queue=&adapter->recvpriv.free_recv_queue; + curfragnum = 0; + pfree_recv_queue = &adapter->recvpriv.free_recv_queue; phead = get_list_head(defrag_q); plist = get_next(phead); prframe = LIST_CONTAINOR(plist, union recv_frame, u); - pfhdr=&prframe->u.hdr; + pfhdr = &prframe->u.hdr; rtw_list_delete(&(prframe->u.list)); - if (curfragnum!=pfhdr->attrib.frag_num) - { + if (curfragnum != pfhdr->attrib.frag_num) { /* the first fragment number must be 0 */ /* free the whole queue */ rtw_free_recvframe(prframe, pfree_recv_queue); @@ -1733,21 +1531,17 @@ _func_enter_; curfragnum++; - plist= get_list_head(defrag_q); + plist = get_list_head(defrag_q); plist = get_next(plist); - - while (rtw_end_of_queue_search(phead, plist) == false) - { + while (rtw_end_of_queue_search(phead, plist) == false) { pnextrframe = LIST_CONTAINOR(plist, union recv_frame , u); - pnfhdr=&pnextrframe->u.hdr; - + pnfhdr = &pnextrframe->u.hdr; /* check the fragment sequence (2nd ~n fragment frame) */ - if (curfragnum!=pnfhdr->attrib.frag_num) - { + if (curfragnum != pnfhdr->attrib.frag_num) { /* the fragment number must be increasing (after decache) */ /* release the defrag_q & prframe */ rtw_free_recvframe(prframe, pfree_recv_queue); @@ -1772,15 +1566,14 @@ _func_enter_; recvframe_put(prframe, pnfhdr->len); - pfhdr->attrib.icv_len=pnfhdr->attrib.icv_len; + pfhdr->attrib.icv_len = pnfhdr->attrib.icv_len; plist = get_next(plist); - }; /* free the defrag_q queue and return the prframe */ rtw_free_recvframe_queue(defrag_q, pfree_recv_queue); - RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("Performance defrag!!!!!\n")); + RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("Performance defrag!!!!!\n")); _func_exit_; @@ -1788,7 +1581,7 @@ _func_exit_; } /* check if need to defrag, if needed queue the frame to defrag_q */ -union recv_frame* recvframe_chk_defrag(struct adapter * padapter, union recv_frame *precv_frame) +union recv_frame *recvframe_chk_defrag(struct adapter *padapter, union recv_frame *precv_frame) { u8 ismfrag; u8 fragnum; @@ -1814,101 +1607,80 @@ _func_enter_; psta_addr = pfhdr->attrib.ta; psta = rtw_get_stainfo(pstapriv, psta_addr); - if (psta == NULL) - { + if (psta == NULL) { u8 type = GetFrameType(pfhdr->rx_data); if (type != WIFI_DATA_TYPE) { psta = rtw_get_bcmc_stainfo(padapter); pdefrag_q = &psta->sta_recvpriv.defrag_q; - } else + } else { pdefrag_q = NULL; - } - else + } + } else { pdefrag_q = &psta->sta_recvpriv.defrag_q; - - if ((ismfrag==0) && (fragnum==0)) - { - prtnframe = precv_frame;/* isn't a fragment frame */ } - if (ismfrag==1) - { + if ((ismfrag == 0) && (fragnum == 0)) + prtnframe = precv_frame;/* isn't a fragment frame */ + + if (ismfrag == 1) { /* 0~(n-1) fragment frame */ /* enqueue to defraf_g */ - if (pdefrag_q != NULL) - { - if (fragnum==0) - { + if (pdefrag_q != NULL) { + if (fragnum == 0) { /* the first fragment */ - if (_rtw_queue_empty(pdefrag_q) == false) - { + if (_rtw_queue_empty(pdefrag_q) == false) { /* free current defrag_q */ rtw_free_recvframe_queue(pdefrag_q, pfree_recv_queue); } } - /* Then enqueue the 0~(n-1) fragment into the defrag_q */ phead = get_list_head(pdefrag_q); rtw_list_insert_tail(&pfhdr->list, phead); - RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("Enqueuq: ismfrag = %d, fragnum= %d\n", ismfrag,fragnum)); + RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("Enqueuq: ismfrag=%d, fragnum=%d\n", ismfrag, fragnum)); - prtnframe=NULL; - - } - else - { + prtnframe = NULL; + } else { /* can't find this ta's defrag_queue, so free this recv_frame */ rtw_free_recvframe(precv_frame, pfree_recv_queue); - prtnframe=NULL; - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("Free because pdefrag_q ==NULL: ismfrag = %d, fragnum= %d\n", ismfrag, fragnum)); + prtnframe = NULL; + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("Free because pdefrag_q==NULL: ismfrag=%d, fragnum=%d\n", ismfrag, fragnum)); } - } - if ((ismfrag==0)&&(fragnum!=0)) - { + if ((ismfrag == 0) && (fragnum != 0)) { /* the last fragment frame */ /* enqueue the last fragment */ - if (pdefrag_q != NULL) - { + if (pdefrag_q != NULL) { phead = get_list_head(pdefrag_q); - rtw_list_insert_tail(&pfhdr->list,phead); + rtw_list_insert_tail(&pfhdr->list, phead); /* call recvframe_defrag to defrag */ - RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("defrag: ismfrag = %d, fragnum= %d\n", ismfrag, fragnum)); + RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("defrag: ismfrag=%d, fragnum=%d\n", ismfrag, fragnum)); precv_frame = recvframe_defrag(padapter, pdefrag_q); - prtnframe=precv_frame; - - } - else - { + prtnframe = precv_frame; + } else { /* can't find this ta's defrag_queue, so free this recv_frame */ rtw_free_recvframe(precv_frame, pfree_recv_queue); - prtnframe=NULL; - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("Free because pdefrag_q ==NULL: ismfrag = %d, fragnum= %d\n", ismfrag,fragnum)); + prtnframe = NULL; + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("Free because pdefrag_q==NULL: ismfrag=%d, fragnum=%d\n", ismfrag, fragnum)); } - } - - if ((prtnframe!=NULL)&&(prtnframe->u.hdr.attrib.privacy)) - { + if ((prtnframe != NULL) && (prtnframe->u.hdr.attrib.privacy)) { /* after defrag we must check tkip mic code */ - if (recvframe_chkmic(padapter, prtnframe)==_FAIL) - { - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("recvframe_chkmic(padapter, prtnframe)==_FAIL\n")); - rtw_free_recvframe(prtnframe,pfree_recv_queue); - prtnframe=NULL; + if (recvframe_chkmic(padapter, prtnframe) == _FAIL) { + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("recvframe_chkmic(padapter, prtnframe)==_FAIL\n")); + rtw_free_recvframe(prtnframe, pfree_recv_queue); + prtnframe = NULL; } } _func_exit_; return prtnframe; - } static int amsdu_to_msdu(struct adapter *padapter, union recv_frame *prframe) @@ -1919,7 +1691,7 @@ static int amsdu_to_msdu(struct adapter *padapter, union recv_frame *prframe) unsigned char *pdata; struct rx_pkt_attrib *pattrib; unsigned char *data_ptr; - struct sk_buff *sub_skb,*subframes[MAX_SUBFRAME_COUNT]; + struct sk_buff *sub_skb, *subframes[MAX_SUBFRAME_COUNT]; struct recv_priv *precvpriv = &padapter->recvpriv; struct __queue *pfree_recv_queue = &(precvpriv->free_recv_queue); int ret = _SUCCESS; @@ -1929,7 +1701,7 @@ static int amsdu_to_msdu(struct adapter *padapter, union recv_frame *prframe) recvframe_pull(prframe, prframe->u.hdr.attrib.hdrlen); - if (prframe->u.hdr.attrib.iv_len >0) + if (prframe->u.hdr.attrib.iv_len > 0) recvframe_pull(prframe, prframe->u.hdr.attrib.iv_len); a_len = prframe->u.hdr.len; @@ -1937,12 +1709,11 @@ static int amsdu_to_msdu(struct adapter *padapter, union recv_frame *prframe) pdata = prframe->u.hdr.rx_data; while (a_len > ETH_HLEN) { - /* Offset 12 denote 2 mac address */ nSubframe_Length = RTW_GET_BE16(pdata + 12); - if ( a_len < (ETHERNET_HEADER_SIZE + nSubframe_Length) ) { - DBG_88E("nRemain_Length is %d and nSubframe_Length is : %d\n",a_len,nSubframe_Length); + if (a_len < (ETHERNET_HEADER_SIZE + nSubframe_Length)) { + DBG_88E("nRemain_Length is %d and nSubframe_Length is : %d\n", a_len, nSubframe_Length); goto exit; } @@ -1963,12 +1734,11 @@ static int amsdu_to_msdu(struct adapter *padapter, union recv_frame *prframe) sub_skb->len = nSubframe_Length; skb_set_tail_pointer(sub_skb, nSubframe_Length); } else { - DBG_88E("skb_clone() Fail!!! , nr_subframes = %d\n",nr_subframes); + DBG_88E("skb_clone() Fail!!! , nr_subframes=%d\n", nr_subframes); break; } } - subframes[nr_subframes++] = sub_skb; if (nr_subframes >= MAX_SUBFRAME_COUNT) { @@ -1992,14 +1762,14 @@ static int amsdu_to_msdu(struct adapter *padapter, union recv_frame *prframe) } } - for (i=0; idata[6]); if (sub_skb->len >= 8 && - ((_rtw_memcmp(sub_skb->data, rtw_rfc1042_header, SNAP_SIZE) && + ((_rtw_memcmp(sub_skb->data, rtw_rfc1042_header, SNAP_SIZE) && eth_type != ETH_P_AARP && eth_type != ETH_P_IPX) || - _rtw_memcmp(sub_skb->data, rtw_bridge_tunnel_header, SNAP_SIZE) )) { + _rtw_memcmp(sub_skb->data, rtw_bridge_tunnel_header, SNAP_SIZE))) { /* remove RFC1042 or Bridge-Tunnel encapsulation and replace EtherType */ skb_pull(sub_skb, SNAP_SIZE); _rtw_memcpy(skb_push(sub_skb, ETH_ALEN), pattrib->src, ETH_ALEN); @@ -2034,7 +1804,7 @@ static int amsdu_to_msdu(struct adapter *padapter, union recv_frame *prframe) exit: - prframe->u.hdr.len=0; + prframe->u.hdr.len = 0; rtw_free_recvframe(prframe, pfree_recv_queue);/* free this recv_frame */ return ret; @@ -2043,14 +1813,14 @@ exit: static int check_indicate_seq(struct recv_reorder_ctrl *preorder_ctrl, u16 seq_num) { u8 wsize = preorder_ctrl->wsize_b; - u16 wend = (preorder_ctrl->indicate_seq + wsize -1) & 0xFFF;/* 4096; */ + u16 wend = (preorder_ctrl->indicate_seq + wsize - 1) & 0xFFF;/* 4096; */ /* Rx Reorder initialize condition. */ if (preorder_ctrl->indicate_seq == 0xFFFF) preorder_ctrl->indicate_seq = seq_num; /* Drop out the packet which SeqNum is smaller than WinStart */ - if ( SN_LESS(seq_num, preorder_ctrl->indicate_seq) ) + if (SN_LESS(seq_num, preorder_ctrl->indicate_seq)) return false; /* */ @@ -2058,14 +1828,11 @@ static int check_indicate_seq(struct recv_reorder_ctrl *preorder_ctrl, u16 seq_n /* 1. Incoming SeqNum is equal to WinStart =>Window shift 1 */ /* 2. Incoming SeqNum is larger than the WinEnd => Window shift N */ /* */ - if ( SN_EQUAL(seq_num, preorder_ctrl->indicate_seq) ) - { + if (SN_EQUAL(seq_num, preorder_ctrl->indicate_seq)) { preorder_ctrl->indicate_seq = (preorder_ctrl->indicate_seq + 1) & 0xFFF; - } - else if (SN_LESS(wend, seq_num)) - { + } else if (SN_LESS(wend, seq_num)) { if (seq_num >= (wsize - 1)) - preorder_ctrl->indicate_seq = seq_num + 1 -wsize; + preorder_ctrl->indicate_seq = seq_num + 1 - wsize; else preorder_ctrl->indicate_seq = 0xFFF - (wsize - (seq_num + 1)) + 1; } @@ -2091,7 +1858,7 @@ int enqueue_reorder_recvframe(struct recv_reorder_ctrl *preorder_ctrl, union rec if (SN_LESS(pnextattrib->seq_num, pattrib->seq_num)) plist = get_next(plist); - else if ( SN_EQUAL(pnextattrib->seq_num, pattrib->seq_num)) + else if (SN_EQUAL(pnextattrib->seq_num, pattrib->seq_num)) return false; else break; @@ -2116,19 +1883,18 @@ static int recv_indicatepkts_in_order(struct adapter *padapter, struct recv_reor plist = get_next(phead); /* Handling some condition for forced indicate case. */ - if (bforced==true) { + if (bforced) { if (rtw_is_list_empty(phead)) return true; prframe = LIST_CONTAINOR(plist, union recv_frame, u); - pattrib = &prframe->u.hdr.attrib; + pattrib = &prframe->u.hdr.attrib; preorder_ctrl->indicate_seq = pattrib->seq_num; } /* Prepare indication list and indication. */ /* Check if there is any packet need indicate. */ while (!rtw_is_list_empty(phead)) { - prframe = LIST_CONTAINOR(plist, union recv_frame, u); pattrib = &prframe->u.hdr.attrib; @@ -2145,35 +1911,20 @@ static int recv_indicatepkts_in_order(struct adapter *padapter, struct recv_reor /* Set this as a lock to make sure that only one thread is indicating packet. */ /* indicate this recv_frame */ - if (!pattrib->amsdu) - { - if ((padapter->bDriverStopped == false) && - (padapter->bSurpriseRemoved == false)) - { - + if (!pattrib->amsdu) { + if ((!padapter->bDriverStopped) && + (!padapter->bSurpriseRemoved)) rtw_recv_indicatepkt(padapter, prframe);/* indicate this recv_frame */ - - } - } - else if (pattrib->amsdu==1) - { - if (amsdu_to_msdu(padapter, prframe)!=_SUCCESS) - { + } else if (pattrib->amsdu == 1) { + if (amsdu_to_msdu(padapter, prframe) != _SUCCESS) rtw_free_recvframe(prframe, &precvpriv->free_recv_queue); - } - } - else - { + } else { /* error condition; */ } - /* Update local variables. */ bPktInBuf = false; - - } - else - { + } else { bPktInBuf = true; break; } @@ -2189,29 +1940,24 @@ static int recv_indicatepkt_reorder(struct adapter *padapter, union recv_frame * struct recv_reorder_ctrl *preorder_ctrl = prframe->u.hdr.preorder_ctrl; struct __queue *ppending_recvframe_queue = &preorder_ctrl->pending_recvframe_queue; - if (!pattrib->amsdu) - { + if (!pattrib->amsdu) { /* s1. */ wlanhdr_to_ethhdr(prframe); - if ((pattrib->qos!=1) /*|| pattrib->priority!=0 || IS_MCAST(pattrib->ra)*/ - || (pattrib->eth_type==0x0806) || (pattrib->ack_policy!=0)) - { - if ((padapter->bDriverStopped == false) && - (padapter->bSurpriseRemoved == false)) - { - RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_, ("@@@@ recv_indicatepkt_reorder -recv_func recv_indicatepkt\n" )); + if ((pattrib->qos != 1) || (pattrib->eth_type == 0x0806) || + (pattrib->ack_policy != 0)) { + if ((!padapter->bDriverStopped) && + (!padapter->bSurpriseRemoved)) { + RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_, ("@@@@ recv_indicatepkt_reorder -recv_func recv_indicatepkt\n")); rtw_recv_indicatepkt(padapter, prframe); return _SUCCESS; - } return _FAIL; } - if (preorder_ctrl->enable == false) - { + if (!preorder_ctrl->enable) { /* indicate this recv_frame */ preorder_ctrl->indicate_seq = pattrib->seq_num; rtw_recv_indicatepkt(padapter, prframe); @@ -2219,11 +1965,8 @@ static int recv_indicatepkt_reorder(struct adapter *padapter, union recv_frame * preorder_ctrl->indicate_seq = (preorder_ctrl->indicate_seq + 1)%4096; return _SUCCESS; } - } - else if (pattrib->amsdu==1) /* temp filter -> means didn't support A-MSDUs in a A-MPDU */ - { - if (preorder_ctrl->enable == false) - { + } else if (pattrib->amsdu == 1) { /* temp filter -> means didn't support A-MSDUs in a A-MPDU */ + if (!preorder_ctrl->enable) { preorder_ctrl->indicate_seq = pattrib->seq_num; retval = amsdu_to_msdu(padapter, prframe); @@ -2231,10 +1974,6 @@ static int recv_indicatepkt_reorder(struct adapter *padapter, union recv_frame * return retval; } } - else - { - - } _enter_critical_bh(&ppending_recvframe_queue->lock, &irql); @@ -2243,8 +1982,7 @@ static int recv_indicatepkt_reorder(struct adapter *padapter, union recv_frame * preorder_ctrl->indicate_seq, pattrib->seq_num)); /* s2. check if winstart_b(indicate_seq) needs to been updated */ - if (!check_indicate_seq(preorder_ctrl, pattrib->seq_num)) - { + if (!check_indicate_seq(preorder_ctrl, pattrib->seq_num)) { rtw_recv_indicatepkt(padapter, prframe); _exit_critical_bh(&ppending_recvframe_queue->lock, &irql); @@ -2252,12 +1990,10 @@ static int recv_indicatepkt_reorder(struct adapter *padapter, union recv_frame * goto _success_exit; } - /* s3. Insert all packet into Reorder Queue to maintain its ordering. */ if (!enqueue_reorder_recvframe(preorder_ctrl, prframe)) goto _err_exit; - /* s4. */ /* Indication process. */ /* After Packet dropping and Sliding Window shifting as above, we can now just indicate the packets */ @@ -2269,30 +2005,25 @@ static int recv_indicatepkt_reorder(struct adapter *padapter, union recv_frame * /* */ /* recv_indicatepkts_in_order(padapter, preorder_ctrl, true); */ - if (recv_indicatepkts_in_order(padapter, preorder_ctrl, false)==true) - { + if (recv_indicatepkts_in_order(padapter, preorder_ctrl, false)) { _set_timer(&preorder_ctrl->reordering_ctrl_timer, REORDER_WAIT_TIME); _exit_critical_bh(&ppending_recvframe_queue->lock, &irql); - } - else - { + } else { _exit_critical_bh(&ppending_recvframe_queue->lock, &irql); _cancel_timer_ex(&preorder_ctrl->reordering_ctrl_timer); } - _success_exit: return _SUCCESS; _err_exit: - _exit_critical_bh(&ppending_recvframe_queue->lock, &irql); + _exit_critical_bh(&ppending_recvframe_queue->lock, &irql); return _FAIL; } - void rtw_reordering_ctrl_timeout_handler(void *pcontext) { unsigned long irql; @@ -2300,26 +2031,17 @@ void rtw_reordering_ctrl_timeout_handler(void *pcontext) struct adapter *padapter = preorder_ctrl->padapter; struct __queue *ppending_recvframe_queue = &preorder_ctrl->pending_recvframe_queue; - - if (padapter->bDriverStopped ||padapter->bSurpriseRemoved) - { + if (padapter->bDriverStopped || padapter->bSurpriseRemoved) return; - } - - /* DBG_88E("+rtw_reordering_ctrl_timeout_handler()=>\n"); */ _enter_critical_bh(&ppending_recvframe_queue->lock, &irql); - if (recv_indicatepkts_in_order(padapter, preorder_ctrl, true)==true) - { + if (recv_indicatepkts_in_order(padapter, preorder_ctrl, true) == true) _set_timer(&preorder_ctrl->reordering_ctrl_timer, REORDER_WAIT_TIME); - } _exit_critical_bh(&ppending_recvframe_queue->lock, &irql); - } -int process_recv_indicatepkts(struct adapter *padapter, union recv_frame *prframe); int process_recv_indicatepkts(struct adapter *padapter, union recv_frame *prframe) { int retval = _SUCCESS; @@ -2328,50 +2050,38 @@ int process_recv_indicatepkts(struct adapter *padapter, union recv_frame *prfram struct mlme_priv *pmlmepriv = &padapter->mlmepriv; struct ht_priv *phtpriv = &pmlmepriv->htpriv; - if (phtpriv->ht_option==true) /* B/G/N Mode */ - { + if (phtpriv->ht_option) { /* B/G/N Mode */ /* prframe->u.hdr.preorder_ctrl = &precvpriv->recvreorder_ctrl[pattrib->priority]; */ - if (recv_indicatepkt_reorder(padapter, prframe)!=_SUCCESS)/* including perform A-MPDU Rx Ordering Buffer Control */ - { - if ((padapter->bDriverStopped == false) && - (padapter->bSurpriseRemoved == false)) - { + if (recv_indicatepkt_reorder(padapter, prframe) != _SUCCESS) { + /* including perform A-MPDU Rx Ordering Buffer Control */ + if ((!padapter->bDriverStopped) && + (!padapter->bSurpriseRemoved)) { retval = _FAIL; return retval; } } - } - else /* B/G mode */ - { - retval=wlanhdr_to_ethhdr (prframe); - if (retval != _SUCCESS) - { - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("wlanhdr_to_ethhdr: drop pkt\n")); + } else { /* B/G mode */ + retval = wlanhdr_to_ethhdr (prframe); + if (retval != _SUCCESS) { + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("wlanhdr_to_ethhdr: drop pkt\n")); return retval; } - if ((padapter->bDriverStopped ==false)&&( padapter->bSurpriseRemoved==false)) - { + if ((!padapter->bDriverStopped) && (!padapter)) { /* indicate this recv_frame */ - RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_, ("@@@@ process_recv_indicatepkts- recv_func recv_indicatepkt\n" )); + RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_, ("@@@@ process_recv_indicatepkts- recv_func recv_indicatepkt\n")); rtw_recv_indicatepkt(padapter, prframe); - - - } - else - { - RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_, ("@@@@ process_recv_indicatepkts- recv_func free_indicatepkt\n" )); + } else { + RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_, ("@@@@ process_recv_indicatepkts- recv_func free_indicatepkt\n")); RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_, ("recv_func:bDriverStopped(%d) OR bSurpriseRemoved(%d)", padapter->bDriverStopped, padapter->bSurpriseRemoved)); retval = _FAIL; return retval; } - } return retval; - } static int recv_func_prehandle(struct adapter *padapter, union recv_frame *rframe) @@ -2382,28 +2092,25 @@ static int recv_func_prehandle(struct adapter *padapter, union recv_frame *rfram struct __queue *pfree_recv_queue = &padapter->recvpriv.free_recv_queue; struct mlme_priv *pmlmepriv = &padapter->mlmepriv; - if (padapter->registrypriv.mp_mode == 1) - { - if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == true))/* padapter->mppriv.check_mp_pkt == 0)) */ - { - if (pattrib->crc_err == 1) - padapter->mppriv.rx_crcerrpktcount++; - else - padapter->mppriv.rx_pktcount++; + if (padapter->registrypriv.mp_mode == 1) { + if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == true)) { /* padapter->mppriv.check_mp_pkt == 0)) */ + if (pattrib->crc_err == 1) + padapter->mppriv.rx_crcerrpktcount++; + else + padapter->mppriv.rx_pktcount++; - if (check_fwstate(pmlmepriv, WIFI_MP_LPBK_STATE) == false) { - RT_TRACE(_module_rtl871x_recv_c_, _drv_alert_, ("MP - Not in loopback mode , drop pkt\n")); - ret = _FAIL; - rtw_free_recvframe(rframe, pfree_recv_queue);/* free this recv_frame */ - goto exit; - } + if (check_fwstate(pmlmepriv, WIFI_MP_LPBK_STATE) == false) { + RT_TRACE(_module_rtl871x_recv_c_, _drv_alert_, ("MP - Not in loopback mode , drop pkt\n")); + ret = _FAIL; + rtw_free_recvframe(rframe, pfree_recv_queue);/* free this recv_frame */ + goto exit; + } } } /* check the frame crtl field and decache */ ret = validate_recv_frame(padapter, rframe); - if (ret != _SUCCESS) - { + if (ret != _SUCCESS) { RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("recv_func: validate_recv_frame fail! drop pkt\n")); rtw_free_recvframe(rframe, pfree_recv_queue);/* free this recv_frame */ goto exit; @@ -2426,20 +2133,20 @@ static int recv_func_posthandle(struct adapter *padapter, union recv_frame *prfr prframe = decryptor(padapter, prframe); if (prframe == NULL) { - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("decryptor: drop pkt\n")); + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("decryptor: drop pkt\n")); ret = _FAIL; goto _recv_data_drop; } prframe = recvframe_chk_defrag(padapter, prframe); - if (prframe==NULL) { - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("recvframe_chk_defrag: drop pkt\n")); + if (prframe == NULL) { + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("recvframe_chk_defrag: drop pkt\n")); goto _recv_data_drop; } - prframe=portctrl(padapter, prframe); + prframe = portctrl(padapter, prframe); if (prframe == NULL) { - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("portctrl: drop pkt\n")); + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("portctrl: drop pkt\n")); ret = _FAIL; goto _recv_data_drop; } @@ -2447,9 +2154,8 @@ static int recv_func_posthandle(struct adapter *padapter, union recv_frame *prfr count_rx_stats(padapter, prframe, NULL); ret = process_recv_indicatepkts(padapter, prframe); - if (ret != _SUCCESS) - { - RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("recv_func: process_recv_indicatepkts fail!\n")); + if (ret != _SUCCESS) { + RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("recv_func: process_recv_indicatepkts fail!\n")); rtw_free_recvframe(orig_prframe, pfree_recv_queue);/* free this recv_frame */ goto _recv_data_drop; } @@ -2462,23 +2168,20 @@ _recv_data_drop: return ret; } - -int recv_func(struct adapter *padapter, union recv_frame *rframe); int recv_func(struct adapter *padapter, union recv_frame *rframe) { int ret; struct rx_pkt_attrib *prxattrib = &rframe->u.hdr.attrib; struct recv_priv *recvpriv = &padapter->recvpriv; - struct security_priv *psecuritypriv=&padapter->securitypriv; + struct security_priv *psecuritypriv = &padapter->securitypriv; struct mlme_priv *mlmepriv = &padapter->mlmepriv; /* check if need to handle uc_swdec_pending_queue*/ - if (check_fwstate(mlmepriv, WIFI_STATION_STATE) && psecuritypriv->busetkipkey) - { + if (check_fwstate(mlmepriv, WIFI_STATION_STATE) && psecuritypriv->busetkipkey) { union recv_frame *pending_frame; unsigned long irqL; - while ((pending_frame=rtw_alloc_recvframe(&padapter->recvpriv.uc_swdec_pending_queue))) { + while ((pending_frame = rtw_alloc_recvframe(&padapter->recvpriv.uc_swdec_pending_queue))) { if (recv_func_posthandle(padapter, pending_frame) == _SUCCESS) DBG_88E("%s: dequeue uc_swdec_pending_queue\n", __func__); } @@ -2487,13 +2190,12 @@ int recv_func(struct adapter *padapter, union recv_frame *rframe) ret = recv_func_prehandle(padapter, rframe); if (ret == _SUCCESS) { - /* check if need to enqueue into uc_swdec_pending_queue*/ if (check_fwstate(mlmepriv, WIFI_STATION_STATE) && - !IS_MCAST(prxattrib->ra) && prxattrib->encrypt>0 && - (prxattrib->bdecrypted == 0 ||psecuritypriv->sw_decrypt == true) && - !is_wep_enc(psecuritypriv->dot11PrivacyAlgrthm) && - !psecuritypriv->busetkipkey) { + !IS_MCAST(prxattrib->ra) && prxattrib->encrypt > 0 && + (prxattrib->bdecrypted == 0 || psecuritypriv->sw_decrypt) && + !is_wep_enc(psecuritypriv->dot11PrivacyAlgrthm) && + !psecuritypriv->busetkipkey) { rtw_enqueue_recvframe(rframe, &padapter->recvpriv.uc_swdec_pending_queue); DBG_88E("%s: no key, enqueue uc_swdec_pending_queue\n", __func__); goto exit; @@ -2506,29 +2208,24 @@ exit: return ret; } - s32 rtw_recv_entry(union recv_frame *precvframe) { struct adapter *padapter; struct recv_priv *precvpriv; - s32 ret=_SUCCESS; + s32 ret = _SUCCESS; _func_enter_; -/* RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("+rtw_recv_entry\n")); */ - padapter = precvframe->u.hdr.adapter; precvpriv = &padapter->recvpriv; - - if ((ret = recv_func(padapter, precvframe)) == _FAIL) - { - RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("rtw_recv_entry: recv_func return fail!!!\n")); + ret = recv_func(padapter, precvframe); + if (ret == _FAIL) { + RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("rtw_recv_entry: recv_func return fail!!!\n")); goto _recv_entry_drop; } - precvpriv->rx_pkts++; _func_exit_; @@ -2545,7 +2242,8 @@ _func_exit_; return ret; } -void rtw_signal_stat_timer_hdl(RTW_TIMER_HDL_ARGS){ +void rtw_signal_stat_timer_hdl(RTW_TIMER_HDL_ARGS) +{ struct adapter *adapter = (struct adapter *)FunctionContext; struct recv_priv *recvpriv = &adapter->recvpriv; @@ -2556,10 +2254,9 @@ void rtw_signal_stat_timer_hdl(RTW_TIMER_HDL_ARGS){ if (adapter->recvpriv.is_signal_dbg) { /* update the user specific value, signal_strength_dbg, to signal_strength, rssi */ - adapter->recvpriv.signal_strength= adapter->recvpriv.signal_strength_dbg; - adapter->recvpriv.rssi=(s8)translate_percentage_to_dbm((u8)adapter->recvpriv.signal_strength_dbg); + adapter->recvpriv.signal_strength = adapter->recvpriv.signal_strength_dbg; + adapter->recvpriv.rssi = (s8)translate_percentage_to_dbm((u8)adapter->recvpriv.signal_strength_dbg); } else { - if (recvpriv->signal_strength_data.update_req == 0) {/* update_req is clear, means we got rx */ avg_signal_strength = recvpriv->signal_strength_data.avg_val; /* after avg_vals are accquired, we can re-stat the signal values */ @@ -2575,19 +2272,19 @@ void rtw_signal_stat_timer_hdl(RTW_TIMER_HDL_ARGS){ /* update value of signal_strength, rssi, signal_qual */ if (check_fwstate(&adapter->mlmepriv, _FW_UNDER_SURVEY) == false) { tmp_s = (avg_signal_strength+(_alpha-1)*recvpriv->signal_strength); - if (tmp_s %_alpha) + if (tmp_s % _alpha) tmp_s = tmp_s/_alpha + 1; else tmp_s = tmp_s/_alpha; - if (tmp_s>100) + if (tmp_s > 100) tmp_s = 100; tmp_q = (avg_signal_qual+(_alpha-1)*recvpriv->signal_qual); - if (tmp_q %_alpha) + if (tmp_q % _alpha) tmp_q = tmp_q/_alpha + 1; else tmp_q = tmp_q/_alpha; - if (tmp_q>100) + if (tmp_q > 100) tmp_q = 100; recvpriv->signal_strength = tmp_s; @@ -2596,5 +2293,4 @@ void rtw_signal_stat_timer_hdl(RTW_TIMER_HDL_ARGS){ } } rtw_set_signal_stat_timer(recvpriv); - }