rtl8192eu: Fix more sparse errors

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
This commit is contained in:
Larry Finger 2013-06-20 10:13:14 -05:00
parent 7e778fc0be
commit 5c8ff88003
13 changed files with 171 additions and 285 deletions

View file

@ -88,7 +88,7 @@ static void update_BCNTIM(_adapter *padapter)
//update TIM IE
if (true) {
u8 *p, *dst_ie, *premainder_ie=NULL, *pbackup_remainder_ie=NULL;
u16 tim_bitmap_le;
__le16 tim_bitmap_le;
uint offset, tmp_len, tim_ielen, tim_ie_offset, remainder_ielen;
tim_bitmap_le = cpu_to_le16(pstapriv->tim_bitmap);

View file

@ -1546,7 +1546,7 @@ int nat25_handle_frame(_adapter *priv, struct sk_buff *skb)
skb_push(skb, 4);
for (i=0; i<6; i++)
*((unsigned short *)(skb->data+i*2)) = *((unsigned short *)(skb->data+4+i*2));
*((unsigned short *)(skb->data+ETH_ALEN*2)) = __constant_htons(ETH_P_8021Q);
*((__be16 *)(skb->data+ETH_ALEN*2)) = __constant_htons(ETH_P_8021Q);
*((unsigned short *)(skb->data+ETH_ALEN*2+2)) = vlan_hdr;
}

View file

@ -418,20 +418,20 @@ _func_enter_;
ie += sz;
//beacon interval : 2bytes
*(u16*)ie = cpu_to_le16((u16)pdev_network->Configuration.BeaconPeriod);//BCN_INTERVAL;
*(__le16*)ie = cpu_to_le16((u16)pdev_network->Configuration.BeaconPeriod);//BCN_INTERVAL;
sz += 2;
ie += 2;
//capability info
*(u16*)ie = 0;
*(u16*)ie |= cpu_to_le16(cap_IBSS);
*(__le16*)ie |= cpu_to_le16(cap_IBSS);
if (pregistrypriv->preamble == PREAMBLE_SHORT)
*(u16*)ie |= cpu_to_le16(cap_ShortPremble);
*(__le16*)ie |= cpu_to_le16(cap_ShortPremble);
if (pdev_network->Privacy)
*(u16*)ie |= cpu_to_le16(cap_Privacy);
*(__le16*)ie |= cpu_to_le16(cap_Privacy);
sz += 2;
ie += 2;
@ -502,6 +502,7 @@ unsigned char *rtw_get_wpa_ie(unsigned char *pie, int *wpa_ie_len, int limit)
{
int len;
u16 val16;
__le16 le_tmp;
unsigned char wpa_oui_type[] = {0x00, 0x50, 0xf2, 0x01};
u8 *pbuf = pie;
int limit_new = limit;
@ -519,9 +520,9 @@ unsigned char *rtw_get_wpa_ie(unsigned char *pie, int *wpa_ie_len, int limit)
}
//check version...
_rtw_memcpy((u8 *)&val16, (pbuf + 6), sizeof(val16));
_rtw_memcpy((u8 *)&le_tmp, (pbuf + 6), sizeof(val16));
val16 = le16_to_cpu(val16);
val16 = le16_to_cpu(le_tmp);
if (val16 != 0x0001)
goto check_next_ie;
@ -1805,15 +1806,15 @@ void rtw_get_bcn_info(struct wlan_network *pnetwork)
{
unsigned short cap = 0;
u8 bencrypt = 0;
//u8 wpa_ie[255],rsn_ie[255];
__le16 le_tmp;
u16 wpa_len=0,rsn_len=0;
struct HT_info_element *pht_info = NULL;
struct rtw_ieee80211_ht_cap *pht_cap = NULL;
unsigned int len;
unsigned char *p;
_rtw_memcpy((u8 *)&cap, rtw_get_capability_from_ie(pnetwork->network.IEs), 2);
cap = le16_to_cpu(cap);
_rtw_memcpy((u8 *)&le_tmp, rtw_get_capability_from_ie(pnetwork->network.IEs), 2);
cap = le16_to_cpu(le_tmp);
if (cap & WLAN_CAPABILITY_PRIVACY) {
bencrypt = 1;
pnetwork->network.Privacy = 1;
@ -1935,12 +1936,9 @@ int rtw_action_frame_parse(const u8 *frame, u32 frame_len, u8* category, u8 *act
fc = le16_to_cpu(((struct rtw_ieee80211_hdr_3addr *)frame)->frame_ctl);
if ((fc & (RTW_IEEE80211_FCTL_FTYPE|RTW_IEEE80211_FCTL_STYPE))
!= (RTW_IEEE80211_FTYPE_MGMT|RTW_IEEE80211_STYPE_ACTION)
)
{
if ((fc & (RTW_IEEE80211_FCTL_FTYPE|RTW_IEEE80211_FCTL_STYPE)) !=
(RTW_IEEE80211_FTYPE_MGMT|RTW_IEEE80211_STYPE_ACTION))
return false;
}
c = frame_body[0];

View file

@ -1123,9 +1123,9 @@ unsigned int OnAuth(_adapter *padapter, union recv_frame *precv_frame)
#ifdef CONFIG_AP_MODE
_irqL irqL;
unsigned int auth_mode, ie_len;
__le16 seq;
u16 seq;
unsigned char *sa, *p;
__le16 algorithm;
u16 algorithm;
int status;
static struct sta_info stat;
struct sta_info *pstat=NULL;
@ -1154,19 +1154,17 @@ unsigned int OnAuth(_adapter *padapter, union recv_frame *precv_frame)
sa = GetAddr2Ptr(pframe);
auth_mode = psecuritypriv->dot11AuthAlgrthm;
seq = cpu_to_le16(*(u16*)((SIZE_PTR)pframe + WLAN_HDR_A3_LEN + 2));
algorithm = cpu_to_le16(*(u16*)((SIZE_PTR)pframe + WLAN_HDR_A3_LEN));
seq = le16_to_cpu(*(__le16 *)((SIZE_PTR)pframe + WLAN_HDR_A3_LEN + 2));
algorithm = le16_to_cpu(*(__le16 *)((SIZE_PTR)pframe + WLAN_HDR_A3_LEN));
DBG_88E("auth alg=%x, seq=%X\n", algorithm, seq);
if (auth_mode == 2 &&
psecuritypriv->dot11PrivacyAlgrthm != _WEP40_ &&
psecuritypriv->dot11PrivacyAlgrthm != _WEP104_)
if (auth_mode == 2 && psecuritypriv->dot11PrivacyAlgrthm != _WEP40_ &&
psecuritypriv->dot11PrivacyAlgrthm != _WEP104_)
auth_mode = 0;
if ((algorithm > 0 && auth_mode == 0) || // rx a shared-key auth but shared not enabled
(algorithm == 0 && auth_mode == 1) ) // rx a open-system auth but shared-key is enabled
{
(algorithm == 0 && auth_mode == 1)) { // rx a open-system auth but shared-key is enabled
DBG_88E("auth rejected due to bad alg [alg=%d, auth_mib=%d] %02X%02X%02X%02X%02X%02X\n",
algorithm, auth_mode, sa[0], sa[1], sa[2], sa[3], sa[4], sa[5]);
@ -1175,20 +1173,17 @@ unsigned int OnAuth(_adapter *padapter, union recv_frame *precv_frame)
goto auth_fail;
}
if (rtw_access_ctrl(padapter, sa) == false)
{
if (rtw_access_ctrl(padapter, sa) == false) {
status = _STATS_UNABLE_HANDLE_STA_;
goto auth_fail;
}
pstat = rtw_get_stainfo(pstapriv, sa);
if (pstat == NULL)
{
if (pstat == NULL) {
// allocate a new one
DBG_88E("going to alloc stainfo for sa=%pM\n", sa);
pstat = rtw_alloc_stainfo(pstapriv, sa);
if (pstat == NULL)
{
if (pstat == NULL) {
DBG_88E(" Exceed the upper limit of supported clients...\n");
status = _STATS_UNABLE_HANDLE_STA_;
goto auth_fail;
@ -1197,12 +1192,9 @@ unsigned int OnAuth(_adapter *padapter, union recv_frame *precv_frame)
pstat->state = WIFI_FW_AUTH_NULL;
pstat->auth_seq = 0;
}
else
{
} else {
_enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
if (rtw_is_list_empty(&pstat->asoc_list)==false)
{
if (rtw_is_list_empty(&pstat->asoc_list)==false) {
rtw_list_delete(&pstat->asoc_list);
pstapriv->asoc_list_cnt--;
if (pstat->expire_to > 0)
@ -1238,15 +1230,12 @@ unsigned int OnAuth(_adapter *padapter, union recv_frame *precv_frame)
if (algorithm==0 && (auth_mode == 0 || auth_mode == 2))
{
if (seq == 1)
{
if (seq == 1) {
pstat->state &= ~WIFI_FW_AUTH_NULL;
pstat->state |= WIFI_FW_AUTH_SUCCESS;
pstat->expire_to = pstapriv->assoc_to;
pstat->authalg = le16_to_cpu(algorithm);
}
else
{
pstat->authalg = algorithm;
} else {
DBG_88E("(2)auth rejected because out of seq [rx_seq=%d, exp_seq=%d]!\n",
seq, pstat->auth_seq+1);
status = _STATS_OUT_OF_AUTH_SEQ_;
@ -1255,48 +1244,39 @@ unsigned int OnAuth(_adapter *padapter, union recv_frame *precv_frame)
}
else // shared system or auto authentication
{
if (seq == 1)
{
if (seq == 1) {
//prepare for the challenging txt...
//get_random_bytes((void *)pstat->chg_txt, 128);//TODO:
pstat->state &= ~WIFI_FW_AUTH_NULL;
pstat->state |= WIFI_FW_AUTH_STATE;
pstat->authalg = le16_to_cpu(algorithm);
pstat->authalg = algorithm;
pstat->auth_seq = 2;
}
else if (seq == 3)
{
} else if (seq == 3) {
//checking for challenging txt...
DBG_88E("checking for challenging txt...\n");
p = rtw_get_ie(pframe + WLAN_HDR_A3_LEN + 4 + _AUTH_IE_OFFSET_ , _CHLGETXT_IE_, (int *)&ie_len,
len - WLAN_HDR_A3_LEN - _AUTH_IE_OFFSET_ - 4);
if ((p==NULL) || (ie_len<=0))
{
if ((p==NULL) || (ie_len<=0)) {
DBG_88E("auth rejected because challenge failure!(1)\n");
status = _STATS_CHALLENGE_FAIL_;
goto auth_fail;
}
if (_rtw_memcmp((void *)(p + 2), pstat->chg_txt, 128))
{
if (_rtw_memcmp((void *)(p + 2), pstat->chg_txt, 128)) {
pstat->state &= (~WIFI_FW_AUTH_STATE);
pstat->state |= WIFI_FW_AUTH_SUCCESS;
// challenging txt is correct...
pstat->expire_to = pstapriv->assoc_to;
}
else
{
} else {
DBG_88E("auth rejected because challenge failure!\n");
status = _STATS_CHALLENGE_FAIL_;
goto auth_fail;
}
}
else
{
} else {
DBG_88E("(3)auth rejected because out of seq [rx_seq=%d, exp_seq=%d]!\n",
seq, pstat->auth_seq+1);
status = _STATS_OUT_OF_AUTH_SEQ_;
@ -1304,7 +1284,6 @@ unsigned int OnAuth(_adapter *padapter, union recv_frame *precv_frame)
}
}
// Now, we are going to issue_auth...
pstat->auth_seq = seq + 1;
@ -1315,7 +1294,6 @@ unsigned int OnAuth(_adapter *padapter, union recv_frame *precv_frame)
if (pstat->state & WIFI_FW_AUTH_SUCCESS)
pstat->auth_seq = 0;
return _SUCCESS;
auth_fail:
@ -1358,12 +1336,11 @@ unsigned int OnAuthClient(_adapter *padapter, union recv_frame *precv_frame)
offset = (GetPrivacy(pframe))? 4: 0;
algthm = le16_to_cpu(*(unsigned short *)((SIZE_PTR)pframe + WLAN_HDR_A3_LEN + offset));
seq = le16_to_cpu(*(unsigned short *)((SIZE_PTR)pframe + WLAN_HDR_A3_LEN + offset + 2));
status = le16_to_cpu(*(unsigned short *)((SIZE_PTR)pframe + WLAN_HDR_A3_LEN + offset + 4));
algthm = le16_to_cpu(*(__le16 *)((SIZE_PTR)pframe + WLAN_HDR_A3_LEN + offset));
seq = le16_to_cpu(*(__le16 *)((SIZE_PTR)pframe + WLAN_HDR_A3_LEN + offset + 2));
status = le16_to_cpu(*(__le16 *)((SIZE_PTR)pframe + WLAN_HDR_A3_LEN + offset + 4));
if (status != 0)
{
if (status != 0) {
DBG_88E("clnt auth fail, status: %d\n", status);
if (status == 13)//&& pmlmeinfo->auth_algo == dot11AuthAlgrthm_Auto)
{
@ -2078,8 +2055,8 @@ unsigned int OnAssocRsp(_adapter *padapter, union recv_frame *precv_frame)
_cancel_timer_ex(&pmlmeext->link_timer);
//status
if ((status = le16_to_cpu(*(unsigned short *)(pframe + WLAN_HDR_A3_LEN + 2))) > 0)
{
status = le16_to_cpu(*(__le16 *)(pframe + WLAN_HDR_A3_LEN + 2));
if (status > 0) {
DBG_88E("assoc reject, status code: %d\n", status);
pmlmeinfo->state = WIFI_FW_NULL_STATE;
res = -4;
@ -2087,56 +2064,46 @@ unsigned int OnAssocRsp(_adapter *padapter, union recv_frame *precv_frame)
}
//get capabilities
pmlmeinfo->capability = le16_to_cpu(*(unsigned short *)(pframe + WLAN_HDR_A3_LEN));
pmlmeinfo->capability = le16_to_cpu(*(__le16 *)(pframe + WLAN_HDR_A3_LEN));
//set slot time
pmlmeinfo->slotTime = (pmlmeinfo->capability & BIT(10))? 9: 20;
//AID
res = pmlmeinfo->aid = (int)(le16_to_cpu(*(unsigned short *)(pframe + WLAN_HDR_A3_LEN + 4))&0x3fff);
res = pmlmeinfo->aid = (int)(le16_to_cpu(*(__le16 *)(pframe + WLAN_HDR_A3_LEN + 4))&0x3fff);
//following are moved to join event callback function
//to handle HT, WMM, rate adaptive, update MAC reg
//for not to handle the synchronous IO in the tasklet
for (i = (6 + WLAN_HDR_A3_LEN); i < pkt_len;)
{
for (i = (6 + WLAN_HDR_A3_LEN); i < pkt_len;) {
pIE = (PNDIS_802_11_VARIABLE_IEs)(pframe + i);
switch (pIE->ElementID)
{
case _VENDOR_SPECIFIC_IE_:
if (_rtw_memcmp(pIE->data, WMM_PARA_OUI, 6)) //WMM
{
WMM_param_handler(padapter, pIE);
}
switch (pIE->ElementID) {
case _VENDOR_SPECIFIC_IE_:
if (_rtw_memcmp(pIE->data, WMM_PARA_OUI, 6)) //WMM
WMM_param_handler(padapter, pIE);
#if defined(CONFIG_P2P) && defined(CONFIG_WFD)
else if ( _rtw_memcmp(pIE->data, WFD_OUI, 4)) //WFD
{
DBG_88E( "[%s] Found WFD IE\n", __func__ );
WFD_info_handler( padapter, pIE );
}
else if ( _rtw_memcmp(pIE->data, WFD_OUI, 4)) { //WFD
DBG_88E( "[%s] Found WFD IE\n", __func__ );
WFD_info_handler( padapter, pIE );
}
#endif
break;
break;
#ifdef CONFIG_WAPI_SUPPORT
case _WAPI_IE_:
pWapiIE = pIE;
break;
case _WAPI_IE_:
pWapiIE = pIE;
break;
#endif
case _HT_CAPABILITY_IE_: //HT caps
HT_caps_handler(padapter, pIE);
break;
case _HT_EXTRA_INFO_IE_: //HT info
HT_info_handler(padapter, pIE);
break;
case _ERPINFO_IE_:
ERP_IE_handler(padapter, pIE);
default:
break;
case _HT_CAPABILITY_IE_: //HT caps
HT_caps_handler(padapter, pIE);
break;
case _HT_EXTRA_INFO_IE_: //HT info
HT_info_handler(padapter, pIE);
break;
case _ERPINFO_IE_:
ERP_IE_handler(padapter, pIE);
default:
break;
}
i += (pIE->Length + 2);
@ -2187,7 +2154,7 @@ unsigned int OnDeAuth(_adapter *padapter, union recv_frame *precv_frame)
}
#endif //CONFIG_P2P
reason = le16_to_cpu(*(unsigned short *)(pframe + WLAN_HDR_A3_LEN));
reason = le16_to_cpu(*(__le16 *)(pframe + WLAN_HDR_A3_LEN));
DBG_88E("%s Reason code(%d)\n", __func__,reason);
@ -5787,51 +5754,37 @@ unsigned int OnAction_p2p(_adapter *padapter, union recv_frame *precv_frame)
if (category != RTW_WLAN_CATEGORY_P2P)
return _SUCCESS;
if ( cpu_to_be32( *( ( u32* ) ( frame_body + 1 ) ) ) != P2POUI )
if (be32_to_cpu(*((__be32 * )(frame_body + 1))) != P2POUI)
return _SUCCESS;
#ifdef CONFIG_IOCTL_CFG80211
if (wdev_to_priv(padapter->rtw_wdev)->p2p_enabled)
{
if (wdev_to_priv(padapter->rtw_wdev)->p2p_enabled) {
rtw_cfg80211_rx_action_p2p(padapter, pframe, len);
return _SUCCESS;
}
else
} else
#endif //CONFIG_IOCTL_CFG80211
{
len -= sizeof(struct rtw_ieee80211_hdr_3addr);
OUI_Subtype = frame_body[5];
dialogToken = frame_body[6];
switch (OUI_Subtype)
{
case P2P_NOTICE_OF_ABSENCE:
break;
case P2P_PRESENCE_REQUEST:
process_p2p_presence_req(pwdinfo, pframe, len);
break;
case P2P_PRESENCE_RESPONSE:
break;
case P2P_GO_DISC_REQUEST:
break;
default:
break;
switch (OUI_Subtype) {
case P2P_NOTICE_OF_ABSENCE:
break;
case P2P_PRESENCE_REQUEST:
process_p2p_presence_req(pwdinfo, pframe, len);
break;
case P2P_PRESENCE_RESPONSE:
break;
case P2P_GO_DISC_REQUEST:
break;
default:
break;
}
}
#endif //CONFIG_P2P
return _SUCCESS;
}
unsigned int OnAction(_adapter *padapter, union recv_frame *precv_frame)

View file

@ -727,6 +727,7 @@ union recv_frame * portctrl(_adapter *adapter,union recv_frame * precv_frame)
u16 ether_type=0;
u16 eapol_type = 0x888e;//for Funia BD's WPA issue
struct rx_pkt_attrib *pattrib;
__be16 be_tmp;
_func_enter_;
@ -756,8 +757,8 @@ _func_enter_;
//get ether_type
ptr=ptr+pfhdr->attrib.hdrlen+pfhdr->attrib.iv_len+LLC_HEADER_SIZE;
_rtw_memcpy(&ether_type,ptr, 2);
ether_type= ntohs((unsigned short )ether_type);
_rtw_memcpy(&be_tmp, ptr, 2);
ether_type= ntohs(be_tmp);
if (ether_type == eapol_type) {
prtnframe=precv_frame;
@ -2159,6 +2160,7 @@ sint wlanhdr_to_ethhdr ( union recv_frame *precvframe)
{
sint rmv_len;
u16 eth_type, len;
__be16 be_tmp;
u8 bsnaphdr;
u8 *psnap_type;
struct ieee80211_snap_hdr *psnap;
@ -2187,8 +2189,7 @@ _func_enter_;
_rtw_memcmp(psnap, rtw_bridge_tunnel_header, SNAP_SIZE)){
/* remove RFC1042 or Bridge-Tunnel encapsulation and replace EtherType */
bsnaphdr = true;
}
else {
} else {
/* Leave Ethernet header part of hdr and full payload */
bsnaphdr = false;
}
@ -2198,12 +2199,11 @@ _func_enter_;
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(&eth_type, ptr+rmv_len, 2);
eth_type= ntohs((u16)eth_type); //pattrib->ether_type
_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))
{
if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == true)) {
ptr += rmv_len ;
*ptr = 0x87;
*(ptr+1) = 0x12;
@ -2222,8 +2222,8 @@ _func_enter_;
_rtw_memcpy(ptr+ETH_ALEN, pattrib->src, ETH_ALEN);
if (!bsnaphdr) {
len = htons(len);
_rtw_memcpy(ptr+12, &len, 2);
be_tmp = htons(len);
_rtw_memcpy(ptr+12, &be_tmp, 2);
}
_func_exit_;
@ -2240,12 +2240,11 @@ sint wlanhdr_to_ethhdr ( union recv_frame *precvframe)
u8 bsnaphdr;
u8 *psnap_type;
struct ieee80211_snap_hdr *psnap;
__be16 be_tmp;
sint ret=_SUCCESS;
_adapter *adapter =precvframe->u.hdr.adapter;
struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
u8* ptr = get_recvframe_data(precvframe) ; // point to frame_ctrl field
u8 *ptr = get_recvframe_data(precvframe); // point to frame_ctrl field
struct rx_pkt_attrib *pattrib = & precvframe->u.hdr.attrib;
struct _vlan *pvlan = NULL;
@ -2286,8 +2285,8 @@ _func_enter_;
ptr += rmv_len ;
_rtw_memcpy(&eth_type, ptr, 2);
eth_type= ntohs((unsigned short )eth_type); //pattrib->ether_type
_rtw_memcpy(&be_tmp, ptr, 2);
eth_type= ntohs(be_tmp); //pattrib->ether_type
ptr +=2;
if (pattrib->encrypt){
@ -2679,7 +2678,6 @@ static int amsdu_to_msdu(_adapter *padapter, union recv_frame *prframe)
while (a_len > ETH_HLEN) {
/* Offset 12 denote 2 mac address */
//nSubframe_Length = ntohs(*((u16*)(pdata + 12)));
nSubframe_Length = RTW_GET_BE16(pdata + 12);
if ( a_len < (ETHERNET_HEADER_SIZE + nSubframe_Length) ) {
@ -2762,7 +2760,6 @@ static int amsdu_to_msdu(_adapter *padapter, union recv_frame *prframe)
#ifndef PLATFORM_FREEBSD
sub_skb = subframes[i];
/* convert hdr + possible LLC headers into Ethernet header */
//eth_type = ntohs(*(u16*)&sub_skb->data[6]);
eth_type = RTW_GET_BE16(&sub_skb->data[6]);
if (sub_skb->len >= 8 &&
((_rtw_memcmp(sub_skb->data, rtw_rfc1042_header, SNAP_SIZE) &&
@ -2773,7 +2770,7 @@ static int amsdu_to_msdu(_adapter *padapter, union recv_frame *prframe)
_rtw_memcpy(skb_push(sub_skb, ETH_ALEN), pattrib->src, ETH_ALEN);
_rtw_memcpy(skb_push(sub_skb, ETH_ALEN), pattrib->dst, ETH_ALEN);
} else {
u16 len;
__be16 len;
/* Leave Ethernet header part of hdr and full payload */
len = htons(sub_skb->len);
_rtw_memcpy(skb_push(sub_skb, 2), &len, 2);

View file

@ -139,21 +139,20 @@ exit:
_func_exit_;
}
static u32 getcrc32(u8 *buf, sint len)
static __le32 getcrc32(u8 *buf, sint len)
{
u8 *p;
u32 crc;
_func_enter_;
if (bcrc32initialized == 0) crc32_init();
if (bcrc32initialized == 0)
crc32_init();
crc = 0xffffffff; /* preload shift register, per CRC-32 spec */
for (p = buf; len > 0; ++p, --len)
{
crc = crc32_table[ (crc ^ *p) & 0xff] ^ (crc >> 8);
}
_func_exit_;
return ~crc; /* transmit complement, per CRC-32 spec */
return cpu_to_le32(~crc); /* transmit complement, per CRC-32 spec */
}
@ -212,7 +211,7 @@ _func_enter_;
length=pattrib->last_txcmdsz-pattrib->hdrlen-pattrib->iv_len- pattrib->icv_len;
*((__le32 *)crc)=cpu_to_le32(getcrc32(payload,length));
*((__le32 *)crc) = getcrc32(payload,length);
arcfour_init(&mycontext, wepkey,3+keylength);
arcfour_encrypt(&mycontext, payload, payload, length);
@ -222,7 +221,7 @@ _func_enter_;
else
{
length=pxmitpriv->frag_len-pattrib->hdrlen-pattrib->iv_len-pattrib->icv_len ;
*((__le32 *)crc)=cpu_to_le32(getcrc32(payload,length));
*((__le32 *)crc) = getcrc32(payload,length);
arcfour_init(&mycontext, wepkey,3+keylength);
arcfour_encrypt(&mycontext, payload, payload, length);
arcfour_encrypt(&mycontext, payload+length, crc, 4);
@ -272,7 +271,7 @@ _func_enter_;
arcfour_encrypt(&mycontext, payload, payload, length);
//calculate icv and compare the icv
*((u32 *)crc) = le32_to_cpu(getcrc32(payload, length - 4));
*((__le32 *)crc) = getcrc32(payload, length - 4);
if (crc[3] != payload[length-1] ||
crc[2] != payload[length-2] ||
@ -724,7 +723,7 @@ _func_enter_;
RT_TRACE(_module_rtl871x_security_c_, _drv_info_,
("pattrib->iv_len =%x, pattrib->icv_len =%x\n",
pattrib->iv_len,pattrib->icv_len));
*((__le32 *)crc)=cpu_to_le32(getcrc32(payload,length));/* modified by Amy*/
*((__le32 *)crc) = getcrc32(payload,length);/* modified by Amy*/
arcfour_init(&mycontext, rc4key,16);
arcfour_encrypt(&mycontext, payload, payload, length);
@ -733,7 +732,7 @@ _func_enter_;
}
else{
length=pxmitpriv->frag_len-pattrib->hdrlen-pattrib->iv_len-pattrib->icv_len ;
*((__le32 *)crc)=cpu_to_le32(getcrc32(payload,length));/* modified by Amy*/
*((__le32 *)crc) = getcrc32(payload,length);/* modified by Amy*/
arcfour_init(&mycontext,rc4key,16);
arcfour_encrypt(&mycontext, payload, payload, length);
arcfour_encrypt(&mycontext, payload+length, crc, 4);
@ -825,7 +824,7 @@ _func_enter_;
arcfour_init(&mycontext, rc4key,16);
arcfour_encrypt(&mycontext, payload, payload, length);
*((u32 *)crc) = le32_to_cpu(getcrc32(payload, length-4));
*((__le32 *)crc) = getcrc32(payload, length-4);
if (crc[3] != payload[length-1] ||
crc[2] != payload[length-2] ||

View file

@ -623,7 +623,7 @@ __inline u8 *get_my_bssid(WLAN_BSSID_EX *pnetwork)
u16 get_beacon_interval(WLAN_BSSID_EX *bss)
{
unsigned short val;
__le16 val;
_rtw_memcpy((unsigned char *)&val, rtw_get_beacon_interval_from_ie(bss->IEs), 2);
return le16_to_cpu(val);
@ -921,8 +921,7 @@ void WMMOnAssocRsp(_adapter *padapter)
struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
struct registry_priv *pregpriv = &padapter->registrypriv;
if (pmlmeinfo->WMM_enable == 0)
{
if (pmlmeinfo->WMM_enable == 0) {
padapter->mlmepriv.acm_mask = 0;
return;
}
@ -934,8 +933,7 @@ void WMMOnAssocRsp(_adapter *padapter)
else
aSifsTime = 16;
for (i = 0; i < 4; i++)
{
for (i = 0; i < 4; i++) {
ACI = (pmlmeinfo->WMM_param.ac_param[i].ACI_AIFSN >> 5) & 0x03;
ACM = (pmlmeinfo->WMM_param.ac_param[i].ACI_AIFSN >> 4) & 0x01;
@ -948,8 +946,7 @@ void WMMOnAssocRsp(_adapter *padapter)
acParm = AIFS | (ECWMin << 8) | (ECWMax << 12) | (TXOP << 16);
switch (ACI)
{
switch (ACI) {
case 0x0:
rtw_hal_set_hwreg(padapter, HW_VAR_AC_PARAM_BE, (u8 *)(&acParm));
acm_mask |= (ACM? BIT(1):0);
@ -1180,23 +1177,13 @@ void HT_caps_handler(_adapter *padapter, PNDIS_802_11_VARIABLE_IEs pIE)
}
}
// Commented by Albert 2010/07/12
// Have to handle the endian issue after copying.
// HT_ext_caps didn't be used yet.
pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info = le16_to_cpu( pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info );
pmlmeinfo->HT_caps.u.HT_cap_element.HT_ext_caps = le16_to_cpu( pmlmeinfo->HT_caps.u.HT_cap_element.HT_ext_caps );
rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type));
//update the MCS rates
for (i = 0; i < 16; i++)
{
if ((rf_type == RF_1T1R) || (rf_type == RF_1T2R))
{
for (i = 0; i < 16; i++) {
if ((rf_type == RF_1T1R) || (rf_type == RF_1T2R)) {
pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate[i] &= MCS_rate_1R[i];
}
else
{
} else {
#ifdef CONFIG_DISABLE_MCS13TO15
if (pmlmeext->cur_bwmode == HT_CHANNEL_WIDTH_40 && (pregistrypriv->wifi_spec!=1))
pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate[i] &= MCS_rate_2R_MCS13TO15_OFF[i];
@ -1207,9 +1194,7 @@ void HT_caps_handler(_adapter *padapter, PNDIS_802_11_VARIABLE_IEs pIE)
#endif //CONFIG_DISABLE_MCS13TO15
}
#ifdef RTL8192C_RECONFIG_TO_1T1R
{
pmlmeinfo->HT_caps.HT_cap_element.MCS_rate[i] &= MCS_rate_1R[i];
}
pmlmeinfo->HT_caps.HT_cap_element.MCS_rate[i] &= MCS_rate_1R[i];
#endif
}
#endif //CONFIG_80211N_HT
@ -1878,14 +1863,10 @@ int support_short_GI(_adapter *padapter, struct HT_caps_element *pHT_caps)
bit_offset = (pmlmeext->cur_bwmode & HT_CHANNEL_WIDTH_40)? 6: 5;
if (pHT_caps->u.HT_cap_element.HT_caps_info & (0x1 << bit_offset))
{
if (__le16_to_cpu(pHT_caps->u.HT_cap_element.HT_caps_info) & (0x1 << bit_offset))
return _SUCCESS;
}
else
{
return _FAIL;
}
}
unsigned char get_highest_rate_idx(u32 mask)
@ -2317,10 +2298,10 @@ void process_addba_req(_adapter *padapter, u8 *paddba_req, u8 *addr)
void update_TSF(struct mlme_ext_priv *pmlmeext, u8 *pframe, uint len)
{
u8* pIE;
u32 *pbuf;
__le32 *pbuf;
pIE = pframe + sizeof(struct rtw_ieee80211_hdr_3addr);
pbuf = (u32*)pIE;
pbuf = (__le32*)pIE;
pmlmeext->TSFValue = le32_to_cpu(*(pbuf+1));

View file

@ -353,14 +353,14 @@ void rtw_hal_write_bbreg(_adapter *padapter, u32 RegAddr, u32 BitMask, u32 Data)
padapter->HalFunc.write_bbreg(padapter, RegAddr, BitMask, Data);
}
u32 rtw_hal_read_rfreg(_adapter *padapter, u32 eRFPath, u32 RegAddr, u32 BitMask)
u32 rtw_hal_read_rfreg(_adapter *padapter, RF_RADIO_PATH_E eRFPath, u32 RegAddr, u32 BitMask)
{
u32 data = 0;
if ( padapter->HalFunc.read_rfreg)
data = padapter->HalFunc.read_rfreg(padapter, eRFPath, RegAddr, BitMask);
return data;
}
void rtw_hal_write_rfreg(_adapter *padapter, u32 eRFPath, u32 RegAddr, u32 BitMask, u32 Data)
void rtw_hal_write_rfreg(_adapter *padapter, RF_RADIO_PATH_E eRFPath, u32 RegAddr, u32 BitMask, u32 Data)
{
if (padapter->HalFunc.write_rfreg)
padapter->HalFunc.write_rfreg(padapter, eRFPath, RegAddr, BitMask, Data);

View file

@ -661,13 +661,8 @@ phy_RFSerialWrite(
* Return: u4Byte Readback value
* Note: This function is equal to "GetRFRegSetting" in PHY programming guide
*/
u32
rtl8188e_PHY_QueryRFReg(
PADAPTER Adapter,
RF_RADIO_PATH_E eRFPath,
u32 RegAddr,
u32 BitMask
)
u32 rtl8188e_PHY_QueryRFReg(PADAPTER Adapter, RF_RADIO_PATH_E eRFPath,
u32 RegAddr, u32 BitMask)
{
u32 Original_Value, Readback_Value, BitShift;
//HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);

View file

@ -221,15 +221,8 @@ void rtl8188e_PHY_SetBBReg( PADAPTER Adapter,
u32 RegAddr,
u32 BitMask,
u32 Data );
u32 rtl8188e_PHY_QueryRFReg( PADAPTER Adapter,
RF_RADIO_PATH_E eRFPath,
u32 RegAddr,
u32 BitMask );
void rtl8188e_PHY_SetRFReg( PADAPTER Adapter,
RF_RADIO_PATH_E eRFPath,
u32 RegAddr,
u32 BitMask,
u32 Data );
u32 rtl8188e_PHY_QueryRFReg(PADAPTER Adapter, RF_RADIO_PATH_E eRFPath, u32 RegAddr, u32 BitMask);
void rtl8188e_PHY_SetRFReg(PADAPTER Adapter, RF_RADIO_PATH_E eRFPath, u32 RegAddr, u32 BitMask, u32 Data);
//
// Initialization related function

View file

@ -23,11 +23,7 @@
#include <drv_conf.h>
#include <osdep_service.h>
#include <drv_types.h>
#ifdef CONFIG_PCI_HCI
#include <pci_hal.h>
#endif
#include <Hal8188EPhyCfg.h>
enum RTL871X_HCI_TYPE {
RTW_PCIE = BIT0,
@ -428,8 +424,8 @@ void rtw_hal_bcn_related_reg_setting(_adapter *padapter);
u32 rtw_hal_read_bbreg(_adapter *padapter, u32 RegAddr, u32 BitMask);
void rtw_hal_write_bbreg(_adapter *padapter, u32 RegAddr, u32 BitMask, u32 Data);
u32 rtw_hal_read_rfreg(_adapter *padapter, u32 eRFPath, u32 RegAddr, u32 BitMask);
void rtw_hal_write_rfreg(_adapter *padapter, u32 eRFPath, u32 RegAddr, u32 BitMask, u32 Data);
u32 rtw_hal_read_rfreg(_adapter *padapter, RF_RADIO_PATH_E eRFPath, u32 RegAddr, u32 BitMask);
void rtw_hal_write_rfreg(_adapter *padapter, RF_RADIO_PATH_E eRFPath, u32 RegAddr, u32 BitMask, u32 Data);
s32 rtw_hal_interrupt_handler(_adapter *padapter);

View file

@ -354,9 +354,9 @@ enum WIFI_REG_DOMAIN {
*(__le16 *)(pbuf) |= cpu_to_le16(type); \
} while (0)
#define GetSequence(pbuf) (cpu_to_le16(*(unsigned short *)((SIZE_PTR)(pbuf) + 22)) >> 4)
#define GetSequence(pbuf) (le16_to_cpu(*(__le16 *)((SIZE_PTR)(pbuf) + 22)) >> 4)
#define GetFragNum(pbuf) (cpu_to_le16(*(unsigned short *)((SIZE_PTR)(pbuf) + 22)) & 0x0f)
#define GetFragNum(pbuf) (le16_to_cpu(*(__le16 *)((SIZE_PTR)(pbuf) + 22)) & 0x0f)
#define GetTupleCache(pbuf) (cpu_to_le16(*(unsigned short *)((SIZE_PTR)(pbuf) + 22)))
@ -385,7 +385,7 @@ enum WIFI_REG_DOMAIN {
*(__le16 *)(pbuf) |= cpu_to_le16(tid & 0xf); \
} while (0)
#define GetPriority(pbuf) ((le16_to_cpu(*(unsigned short *)(pbuf))) & 0xf)
#define GetPriority(pbuf) ((le16_to_cpu(*(__le16 *)(pbuf))) & 0xf)
#define SetEOSP(pbuf, eosp) \
do { \
@ -397,18 +397,20 @@ enum WIFI_REG_DOMAIN {
*(__le16 *)(pbuf) |= cpu_to_le16( (ack & 3) << 5); \
} while (0)
#define GetAckpolicy(pbuf) (((le16_to_cpu(*(unsigned short *)pbuf)) >> 5) & 0x3)
#define GetAckpolicy(pbuf) (((le16_to_cpu(*(__le16 *)pbuf)) >> 5) & 0x3)
#define GetAMsdu(pbuf) (((le16_to_cpu(*(unsigned short *)pbuf)) >> 7) & 0x1)
#define GetAMsdu(pbuf) (((le16_to_cpu(*(__le16 *)pbuf)) >> 7) & 0x1)
#define SetAMsdu(pbuf, amsdu) \
do { \
*(__le16 *)(pbuf) |= cpu_to_le16( (amsdu & 1) << 7); \
} while (0)
#define GetAid(pbuf) (cpu_to_le16(*(unsigned short *)((SIZE_PTR)(pbuf) + 2)) & 0x3fff)
#define GetAid(pbuf) (le16_to_cpu(*(__le16 *)((SIZE_PTR)(pbuf) + 2)) & 0x3fff)
#define GetTid(pbuf) (cpu_to_le16(*(unsigned short *)((SIZE_PTR)(pbuf) + (((GetToDs(pbuf)<<1)|GetFrDs(pbuf))==3?30:24))) & 0x000f)
#define GetTid(pbuf) (le16_to_cpu(*(__le16 *)((SIZE_PTR)(pbuf) + \
(((GetToDs(pbuf)<<1) | GetFrDs(pbuf)) == 3 ? \
30 : 24))) & 0x000f)
#define GetAddr1Ptr(pbuf) ((unsigned char *)((SIZE_PTR)(pbuf) + 4))
@ -733,7 +735,7 @@ struct AC_param
{
unsigned char ACI_AIFSN;
unsigned char CW;
unsigned short TXOP_limit;
__le16 TXOP_limit;
} __attribute__ ((packed));
struct WMM_para_element
@ -806,7 +808,7 @@ struct AC_param
{
unsigned char ACI_AIFSN;
unsigned char CW;
unsigned short TXOP_limit;
__le16 TXOP_limit;
};
struct WMM_para_element

View file

@ -300,6 +300,7 @@ static char *translate_scan(_adapter *padapter,
{
struct iw_event iwe;
u16 cap;
__le16 le_tmp;
u32 ht_ielen = 0;
char custom[MAX_CUSTOM_LEN];
char *p;
@ -469,10 +470,9 @@ static char *translate_scan(_adapter *padapter,
/* Add mode */
iwe.cmd = SIOCGIWMODE;
_rtw_memcpy((u8 *)&cap, rtw_get_capability_from_ie(pnetwork->network.IEs), 2);
_rtw_memcpy((u8 *)&le_tmp, rtw_get_capability_from_ie(pnetwork->network.IEs), 2);
cap = le16_to_cpu(cap);
cap = le16_to_cpu(le_tmp);
if (cap & (WLAN_CAPABILITY_IBSS |WLAN_CAPABILITY_BSS)){
if (cap & WLAN_CAPABILITY_BSS)
@ -1829,29 +1829,22 @@ static int rtw_wx_set_mlme(struct net_device *dev,
DBG_88E("%s\n", __func__);
reason = cpu_to_le16(mlme->reason_code);
reason = mlme->reason_code;
DBG_88E("%s, cmd=%d, reason=%d\n", __func__, mlme->cmd, reason);
switch (mlme->cmd)
{
case IW_MLME_DEAUTH:
if (!rtw_set_802_11_disassociate(padapter))
ret = -1;
break;
case IW_MLME_DISASSOC:
if (!rtw_set_802_11_disassociate(padapter))
ret = -1;
break;
default:
return -EOPNOTSUPP;
switch (mlme->cmd) {
case IW_MLME_DEAUTH:
if (!rtw_set_802_11_disassociate(padapter))
ret = -1;
break;
case IW_MLME_DISASSOC:
if (!rtw_set_802_11_disassociate(padapter))
ret = -1;
break;
default:
return -EOPNOTSUPP;
}
return ret;
}
@ -4530,40 +4523,30 @@ static int rtw_p2p_get_wps_configmethod(struct net_device *dev,
{
u8 *wpsie;
uint wpsie_len = 0;
__be16 be_tmp;
// The mac address is matched.
if ((wpsie=rtw_get_wps_ie(&pnetwork->network.IEs[ 12 ], pnetwork->network.IELength - 12, NULL, &wpsie_len)))
{
rtw_get_wps_attr_content(wpsie, wpsie_len, WPS_ATTR_CONF_METHOD, (u8*) &attr_content, &attr_contentlen);
if (attr_contentlen)
{
attr_content = be16_to_cpu(attr_content);
// The mac address is matched.
if ((wpsie=rtw_get_wps_ie(&pnetwork->network.IEs[ 12 ], pnetwork->network.IELength - 12, NULL, &wpsie_len))) {
rtw_get_wps_attr_content(wpsie, wpsie_len, WPS_ATTR_CONF_METHOD, (u8*) &be_tmp, &attr_contentlen);
if (attr_contentlen) {
attr_content = be16_to_cpu(be_tmp);
sprintf(attr_content_str, "\n\nM=%.4d", attr_content);
blnMatch = 1;
}
}
break;
}
}
plist = get_next(plist);
}
_exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
if (!blnMatch)
{
sprintf(attr_content_str, "\n\nM=0000");
}
if (copy_to_user(wrqu->data.pointer, attr_content_str, 6 + 17)) {
if (copy_to_user(wrqu->data.pointer, attr_content_str, 6 + 17))
return -EFAULT;
}
return ret;
}
#ifdef CONFIG_WFD
@ -4796,9 +4779,10 @@ static int rtw_p2p_get_device_type(struct net_device *dev,
rtw_get_wps_attr_content(wpsie, wpsie_len, WPS_ATTR_PRIMARY_DEV_TYPE, dev_type, &dev_type_len);
if (dev_type_len) {
u16 type = 0;
__be16 be_tmp;
memcpy(&type, dev_type, 2);
type = be16_to_cpu(type);
memcpy(&be_tmp, dev_type, 2);
type = be16_to_cpu(be_tmp);
sprintf(dev_type_str, "\n\nN=%.2d", type);
blnMatch = 1;
}
@ -6116,7 +6100,7 @@ static int rtw_p2p_get(struct net_device *dev,
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
if (padapter->bShowGetP2PState)
DBG_88E("[%s] extra = %s\n", __func__, (char*) wrqu->data.pointer);
DBG_88E("[%s] extra = %s\n", __func__, (char *)wrqu->data.pointer);
if (!memcmp(wrqu->data.pointer, "status", 6)) {
rtw_p2p_get_status(dev, info, wrqu, extra);
@ -6169,28 +6153,19 @@ static int rtw_p2p_get2(struct net_device *dev,
DBG_88E("[%s] extra = %s\n", __func__, (char *)wrqu->data.pointer);
if (!memcmp(extra, "wpsCM=", 6))
{
if (!memcmp(extra, "wpsCM=", 6)) {
wrqu->data.length -= 6;
rtw_p2p_get_wps_configmethod(dev, info, wrqu, &extra[6]);
}
else if (!memcmp(extra, "devN=", 5))
{
} else if (!memcmp(extra, "devN=", 5)) {
wrqu->data.length -= 5;
rtw_p2p_get_device_name(dev, info, wrqu, &extra[5]);
}
else if (!memcmp(extra, "dev_type=", 9))
{
} else if (!memcmp(extra, "dev_type=", 9)) {
wrqu->data.length -= 9;
rtw_p2p_get_device_type(dev, info, wrqu, &extra[9]);
}
else if (!memcmp(extra, "go_devadd=", 10))
{
} else if (!memcmp(extra, "go_devadd=", 10)) {
wrqu->data.length -= 10;
rtw_p2p_get_go_device_address(dev, info, wrqu, &extra[10]);
}
else if (!memcmp(extra, "InvProc=", 8))
{
} else if (!memcmp(extra, "InvProc=", 8)) {
wrqu->data.length -= 8;
rtw_p2p_get_invitation_procedure(dev, info, wrqu, &extra[8]);
}
@ -6198,7 +6173,6 @@ static int rtw_p2p_get2(struct net_device *dev,
#endif //CONFIG_P2P
return ret;
}
static int rtw_cta_test_start(struct net_device *dev,
@ -6348,7 +6322,6 @@ static void rf_reg_dump(_adapter *padapter)
printk("\nRF_Path(%x)\n",path);
for (i=0;i<0x100;i++)
{
//value = PHY_QueryRFReg(padapter, (RF_RADIO_PATH_E)path,i, bMaskDWord);
value = rtw_hal_read_rfreg(padapter, path, i, 0xffffffff);
if (j%4==1) printk("0x%02x ",i);
printk(" 0x%08x ",value);
@ -10530,7 +10503,6 @@ static int rtw_mp_dump(struct net_device *dev,
for (i = 0; i < 0x34; i++)
#endif
{
//value = PHY_QueryRFReg(padapter, (RF_RADIO_PATH_E)path,i, bMaskDWord);
value = rtw_hal_read_rfreg(padapter, path, i, 0xffffffff);
if (j%4==1) DBG_88E("0x%02x ",i);
DBG_88E(" 0x%08x ",value);