rtl8188eu: Fix all W=1 warnings

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
This commit is contained in:
Larry Finger 2013-06-21 13:41:29 -05:00
parent 5c8ff88003
commit fb786d0283
29 changed files with 217 additions and 507 deletions

View file

@ -429,7 +429,7 @@ thread_return rtw_cmd_thread(thread_context context)
{
u8 ret;
struct cmd_obj *pcmd;
u8 *pcmdbuf, *prspbuf;
u8 *pcmdbuf;
u8 (*cmd_hdl)(_adapter *padapter, u8* pbuf);
void (*pcmd_callback)(_adapter *dev, struct cmd_obj *pcmd);
PADAPTER padapter = (PADAPTER)context;
@ -440,7 +440,6 @@ _func_enter_;
thread_enter("RTW_CMD_THREAD");
pcmdbuf = pcmdpriv->cmd_buf;
prspbuf = pcmdpriv->rsp_buf;
pcmdpriv->cmdthd_running=true;
_rtw_up_sema(&pcmdpriv->terminate_cmdthread_sema);
@ -1044,7 +1043,6 @@ void rtw_getbbrfreg_cmdrsp_callback(_adapter* padapter, struct cmd_obj *pcmd)
{
_func_enter_;
//rtw_free_cmd_obj(pcmd);
rtw_mfree((unsigned char*) pcmd->parmbuf, pcmd->cmdsz);
rtw_mfree((unsigned char*) pcmd, sizeof(struct cmd_obj));
@ -1151,7 +1149,7 @@ _func_exit_;
u8 rtw_joinbss_cmd(_adapter *padapter, struct wlan_network* pnetwork)
{
u8 *auth, res = _SUCCESS;
u8 res = _SUCCESS;
uint t_len = 0;
WLAN_BSSID_EX *psecnetwork;
struct cmd_obj *pcmd;
@ -1233,7 +1231,6 @@ _func_enter_;
_rtw_memcpy(psecnetwork, &pnetwork->network, get_WLAN_BSSID_EX_sz(&pnetwork->network));
auth=&psecuritypriv->authenticator_ie[0];
psecuritypriv->authenticator_ie[0]=(unsigned char)psecnetwork->IELength;
if ((psecnetwork->IELength-12) < (256-1)) {

View file

@ -657,35 +657,30 @@ int proc_set_rx_signal(struct file *file, const char __user *buffer,
struct net_device *dev = (struct net_device *)data;
_adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
char tmp[32];
u32 is_signal_dbg, signal_strength;
u32 is_signal_dbg;
s32 signal_strength;
if (count < 1)
return -EFAULT;
if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) {
int num = sscanf(tmp, "%u %u", &is_signal_dbg, &signal_strength);
is_signal_dbg = is_signal_dbg==0?0:1;
if (is_signal_dbg && num!=2)
is_signal_dbg = is_signal_dbg == 0 ? 0 : 1;
if (is_signal_dbg && num != 2)
return count;
signal_strength = signal_strength>100?100:signal_strength;
signal_strength = signal_strength<0?0:signal_strength;
signal_strength = signal_strength > 100 ? 100 : signal_strength;
signal_strength = signal_strength < 0 ? 0 : signal_strength;
padapter->recvpriv.is_signal_dbg = is_signal_dbg;
padapter->recvpriv.signal_strength_dbg=signal_strength;
padapter->recvpriv.signal_strength_dbg = signal_strength;
if (is_signal_dbg)
DBG_88E("set %s %u\n", "DBG_SIGNAL_STRENGTH", signal_strength);
else
DBG_88E("set %s\n", "HW_SIGNAL_STRENGTH");
}
return count;
}
#ifdef CONFIG_80211N_HT
@ -696,7 +691,6 @@ int proc_get_ht_enable(char *page, char **start,
struct net_device *dev = data;
_adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
struct registry_priv *pregpriv = &padapter->registrypriv;
int len = 0;
if (pregpriv)
@ -704,7 +698,6 @@ int proc_get_ht_enable(char *page, char **start,
"%d\n",
pregpriv->ht_enable
);
*eof = 1;
return len;
}
@ -716,7 +709,7 @@ int proc_set_ht_enable(struct file *file, const char __user *buffer,
_adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
struct registry_priv *pregpriv = &padapter->registrypriv;
char tmp[32];
u32 mode;
s32 mode;
if (count < 1)
return -EFAULT;
@ -763,7 +756,7 @@ int proc_set_cbw40_enable(struct file *file, const char __user *buffer,
_adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
struct registry_priv *pregpriv = &padapter->registrypriv;
char tmp[32];
u32 mode;
s32 mode;
if (count < 1)
return -EFAULT;
@ -812,7 +805,7 @@ int proc_set_ampdu_enable(struct file *file, const char __user *buffer,
_adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
struct registry_priv *pregpriv = &padapter->registrypriv;
char tmp[32];
u32 mode;
s32 mode;
if (count < 1)
return -EFAULT;

View file

@ -705,7 +705,7 @@ u8 rtw_efuse_map_write(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
u8 offset, word_en;
u8 *map;
u8 newdata[PGPKT_DATA_SIZE];
s32 i, j, idx;
s32 i, idx;
u8 ret = _SUCCESS;
u16 mapLen=0;
@ -715,12 +715,12 @@ u8 rtw_efuse_map_write(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
return _FAIL;
map = rtw_zmalloc(mapLen);
if (map == NULL){
if (map == NULL)
return _FAIL;
}
ret = rtw_efuse_map_read(padapter, 0, mapLen, map);
if (ret == _FAIL) goto exit;
if (ret == _FAIL)
goto exit;
Efuse_PowerSwitch(padapter, true, true);
@ -728,7 +728,6 @@ u8 rtw_efuse_map_write(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
word_en = 0xF;
_rtw_memset(newdata, 0xFF, PGPKT_DATA_SIZE);
i = addr & 0x7; // index of one package
j = 0; // index of new package
idx = 0; // data index
if (i & 0x1) {
@ -742,9 +741,9 @@ u8 rtw_efuse_map_write(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
idx++;
}
do {
for (; i < PGPKT_DATA_SIZE; i += 2)
{
if (cnts == idx) break;
for (; i < PGPKT_DATA_SIZE; i += 2) {
if (cnts == idx)
break;
if ((cnts - idx) == 1) {
if (data[idx] != map[addr+idx]) {
word_en &= ~BIT(i >> 1);
@ -755,15 +754,15 @@ u8 rtw_efuse_map_write(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
break;
} else {
if ((data[idx] != map[addr+idx]) ||
(data[idx+1] != map[addr+idx+1]))
{
(data[idx+1] != map[addr+idx+1])) {
word_en &= ~BIT(i >> 1);
newdata[i] = data[idx];
newdata[i+1] = data[idx + 1];
}
idx += 2;
}
if (idx == cnts) break;
if (idx == cnts)
break;
}
if (word_en != 0xF) {
@ -771,39 +770,34 @@ u8 rtw_efuse_map_write(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
DBG_88E("offset=%x\n",offset);
DBG_88E("word_en=%x\n",word_en);
for (i=0;i<PGPKT_DATA_SIZE;i++)
{
for (i = 0; i < PGPKT_DATA_SIZE; i++)
DBG_88E("data=%x \t",newdata[i]);
}
if (ret == _FAIL) break;
if (ret == _FAIL)
break;
}
if (idx == cnts) break;
if (idx == cnts)
break;
offset++;
i = 0;
j = 0;
word_en = 0xF;
_rtw_memset(newdata, 0xFF, PGPKT_DATA_SIZE);
} while (1);
Efuse_PowerSwitch(padapter, true, false);
exit:
rtw_mfree(map, mapLen);
return ret;
}
//------------------------------------------------------------------------------
u8 rtw_BT_efuse_map_write(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
{
u8 offset, word_en;
u8 *map;
u8 newdata[PGPKT_DATA_SIZE];
s32 i, j, idx;
s32 i, idx;
u8 ret = _SUCCESS;
u16 mapLen=0;
@ -813,9 +807,8 @@ u8 rtw_BT_efuse_map_write(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
return _FAIL;
map = rtw_zmalloc(mapLen);
if (map == NULL){
if (map == NULL)
return _FAIL;
}
ret = rtw_BT_efuse_map_read(padapter, 0, mapLen, map);
if (ret == _FAIL) goto exit;
@ -826,7 +819,6 @@ u8 rtw_BT_efuse_map_write(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
word_en = 0xF;
_rtw_memset(newdata, 0xFF, PGPKT_DATA_SIZE);
i = addr & 0x7; // index of one package
j = 0; // index of new package
idx = 0; // data index
if (i & 0x1) {
@ -840,9 +832,9 @@ u8 rtw_BT_efuse_map_write(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
idx++;
}
do {
for (; i < PGPKT_DATA_SIZE; i += 2)
{
if (cnts == idx) break;
for (; i < PGPKT_DATA_SIZE; i += 2) {
if (cnts == idx)
break;
if ((cnts - idx) == 1) {
if (data[idx] != map[addr+idx]) {
word_en &= ~BIT(i >> 1);
@ -853,37 +845,35 @@ u8 rtw_BT_efuse_map_write(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
break;
} else {
if ((data[idx] != map[addr+idx]) ||
(data[idx+1] != map[addr+idx+1]))
{
(data[idx+1] != map[addr+idx+1])) {
word_en &= ~BIT(i >> 1);
newdata[i] = data[idx];
newdata[i+1] = data[idx + 1];
}
idx += 2;
}
if (idx == cnts) break;
if (idx == cnts)
break;
}
if (word_en != 0xF)
{
if (word_en != 0xF) {
DBG_88E("%s: offset=%#X\n", __func__, offset);
DBG_88E("%s: word_en=%#X\n", __func__, word_en);
DBG_88E("%s: data=", __func__);
for (i=0; i<PGPKT_DATA_SIZE; i++)
{
DBG_88E("0x%02X ", newdata[i]);
}
DBG_88E("\n");
ret = Efuse_PgPacketWrite_BT(padapter, offset, word_en, newdata, false);
if (ret == _FAIL) break;
if (ret == _FAIL)
break;
}
if (idx == cnts) break;
if (idx == cnts)
break;
offset++;
i = 0;
j = 0;
word_en = 0xF;
_rtw_memset(newdata, 0xFF, PGPKT_DATA_SIZE);
} while (1);

View file

@ -770,42 +770,37 @@ _func_exit_;
u8 rtw_set_802_11_add_wep(_adapter* padapter, NDIS_802_11_WEP *wep){
u8 bdefaultkey;
u8 btransmitkey;
sint keyid,res;
struct security_priv* psecuritypriv=&(padapter->securitypriv);
u8 ret=_SUCCESS;
_func_enter_;
bdefaultkey=(wep->KeyIndex & 0x40000000) > 0 ? false : true; //for ???
btransmitkey= (wep->KeyIndex & 0x80000000) > 0 ? true : false; //for ???
keyid=wep->KeyIndex & 0x3fffffff;
if (keyid>4)
{
if (keyid>4) {
RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("MgntActrtw_set_802_11_add_wep:keyid>4=>fail\n"));
ret=false;
goto exit;
}
switch (wep->KeyLength)
{
case 5:
psecuritypriv->dot11PrivacyAlgrthm=_WEP40_;
RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("MgntActrtw_set_802_11_add_wep:wep->KeyLength=5\n"));
break;
case 13:
psecuritypriv->dot11PrivacyAlgrthm=_WEP104_;
RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("MgntActrtw_set_802_11_add_wep:wep->KeyLength=13\n"));
break;
default:
psecuritypriv->dot11PrivacyAlgrthm=_NO_PRIVACY_;
RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("MgntActrtw_set_802_11_add_wep:wep->KeyLength!=5 or 13\n"));
break;
switch (wep->KeyLength) {
case 5:
psecuritypriv->dot11PrivacyAlgrthm=_WEP40_;
RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("MgntActrtw_set_802_11_add_wep:wep->KeyLength=5\n"));
break;
case 13:
psecuritypriv->dot11PrivacyAlgrthm=_WEP104_;
RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("MgntActrtw_set_802_11_add_wep:wep->KeyLength=13\n"));
break;
default:
psecuritypriv->dot11PrivacyAlgrthm=_NO_PRIVACY_;
RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("MgntActrtw_set_802_11_add_wep:wep->KeyLength!=5 or 13\n"));
break;
}
RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("rtw_set_802_11_add_wep:befor memcpy, wep->KeyLength=0x%x wep->KeyIndex=0x%x keyid =%x\n",wep->KeyLength,wep->KeyIndex,keyid));
RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_,
("rtw_set_802_11_add_wep:befor memcpy, wep->KeyLength=0x%x wep->KeyIndex=0x%x keyid =%x\n",
wep->KeyLength,wep->KeyIndex,keyid));
_rtw_memcpy(&(psecuritypriv->dot11DefKey[keyid].skey[0]),&(wep->KeyMaterial),wep->KeyLength);
@ -1068,7 +1063,6 @@ _func_enter_;
// If WEP encryption algorithm, just call rtw_set_802_11_add_wep().
if ((padapter->securitypriv.dot11AuthAlgrthm !=dot11AuthAlgrthm_8021X)&&(encryptionalgo== _WEP40_ || encryptionalgo== _WEP104_))
{
u8 ret;
u32 keyindex;
u32 len = FIELD_OFFSET(NDIS_802_11_KEY, KeyMaterial) + key->KeyLength;
NDIS_802_11_WEP *wep = &padapter->securitypriv.ndiswep;
@ -1242,8 +1236,7 @@ _func_exit_;
u8 rtw_set_802_11_remove_key(_adapter* padapter, NDIS_802_11_REMOVE_KEY *key){
uint encryptionalgo;
u8 * pbssid;
u8 *pbssid;
struct sta_info *stainfo;
u8 bgroup = (key->KeyIndex & 0x4000000) > 0 ? false: true;
u8 keyIndex = (u8)key->KeyIndex & 0x03;
@ -1257,7 +1250,6 @@ _func_enter_;
}
if (bgroup == true) {
encryptionalgo= padapter->securitypriv.dot118021XGrpPrivacy;
// clear group key by index
//NdisZeroMemory(Adapter->MgntInfo.SecurityInfo.KeyBuf[keyIndex], MAX_WEP_KEY_LEN);
//Adapter->MgntInfo.SecurityInfo.KeyLen[keyIndex] = 0;
@ -1265,32 +1257,23 @@ _func_enter_;
_rtw_memset(&padapter->securitypriv.dot118021XGrpKey[keyIndex], 0, 16);
//! \todo Send a H2C Command to Firmware for removing this Key in CAM Entry.
} else {
pbssid=get_bssid(&padapter->mlmepriv);
stainfo=rtw_get_stainfo(&padapter->stapriv , pbssid );
if (stainfo !=NULL){
encryptionalgo=stainfo->dot118021XPrivacy;
if (stainfo) {
// clear key by BSSID
_rtw_memset(&stainfo->dot118021x_UncstKey, 0, 16);
// clear key by BSSID
_rtw_memset(&stainfo->dot118021x_UncstKey, 0, 16);
//! \todo Send a H2C Command to Firmware for disable this Key in CAM Entry.
}
else{
//! \todo Send a H2C Command to Firmware for disable this Key in CAM Entry.
} else {
ret= _FAIL;
goto exit;
}
}
exit:
_func_exit_;
return true;
return ret;
}
/*

View file

@ -1697,7 +1697,9 @@ static void rtw_joinbss_update_network(_adapter *padapter, struct wlan_network *
void rtw_joinbss_event_prehandle(_adapter *adapter, u8 *pbuf)
{
_irqL irqL,irqL2;
#ifdef REJOIN
static u8 retry=0;
#endif
u8 timer_cancelled;
struct sta_info *ptarget_sta= NULL, *pcur_sta = NULL;
struct sta_priv *pstapriv = &adapter->stapriv;
@ -1709,27 +1711,6 @@ void rtw_joinbss_event_prehandle(_adapter *adapter, u8 *pbuf)
_func_enter_;
#ifdef CONFIG_RTL8712
//endian_convert
pnetwork->join_res = le32_to_cpu(pnetwork->join_res);
pnetwork->network_type = le32_to_cpu(pnetwork->network_type);
pnetwork->network.Length = le32_to_cpu(pnetwork->network.Length);
pnetwork->network.Ssid.SsidLength = le32_to_cpu(pnetwork->network.Ssid.SsidLength);
pnetwork->network.Privacy =le32_to_cpu( pnetwork->network.Privacy);
pnetwork->network.Rssi = le32_to_cpu(pnetwork->network.Rssi);
pnetwork->network.NetworkTypeInUse =le32_to_cpu(pnetwork->network.NetworkTypeInUse) ;
pnetwork->network.Configuration.ATIMWindow = le32_to_cpu(pnetwork->network.Configuration.ATIMWindow);
pnetwork->network.Configuration.BeaconPeriod = le32_to_cpu(pnetwork->network.Configuration.BeaconPeriod);
pnetwork->network.Configuration.DSConfig = le32_to_cpu(pnetwork->network.Configuration.DSConfig);
pnetwork->network.Configuration.FHConfig.DwellTime=le32_to_cpu(pnetwork->network.Configuration.FHConfig.DwellTime);
pnetwork->network.Configuration.FHConfig.HopPattern=le32_to_cpu(pnetwork->network.Configuration.FHConfig.HopPattern);
pnetwork->network.Configuration.FHConfig.HopSet=le32_to_cpu(pnetwork->network.Configuration.FHConfig.HopSet);
pnetwork->network.Configuration.FHConfig.Length=le32_to_cpu(pnetwork->network.Configuration.FHConfig.Length);
pnetwork->network.Configuration.Length = le32_to_cpu(pnetwork->network.Configuration.Length);
pnetwork->network.InfrastructureMode = le32_to_cpu(pnetwork->network.InfrastructureMode);
pnetwork->network.IELength = le32_to_cpu(pnetwork->network.IELength );
#endif
RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("joinbss event call back received with res=%d\n", pnetwork->join_res));
rtw_get_encrypt_decrypt_from_registrypriv(adapter);
@ -1754,7 +1735,9 @@ _func_enter_;
if (pnetwork->join_res > 0) {
_enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
#ifdef REJOIN
retry = 0;
#endif
if (check_fwstate(pmlmepriv,_FW_UNDER_LINKING) ) {
//s1. find ptarget_wlan
if (check_fwstate(pmlmepriv, _FW_LINKED) ) {
@ -3003,17 +2986,8 @@ int rtw_restruct_wmm_ie(_adapter *adapter, u8 *in_ie, u8 *out_ie, uint in_len, u
{
//Append WMM IE to the last index of out_ie
/*
for (j=i; j< i+(in_ie[i+1]+2); j++)
{
out_ie[ielength] = in_ie[j];
ielength++;
}
out_ie[initial_out_len+8] = 0x00; //force the QoS Info Field to be zero
*/
for ( j = i; j < i + 9; j++ )
{
for ( j = i; j < i + 9; j++ ) {
out_ie[ ielength] = in_ie[ j ];
ielength++;
}
@ -3318,9 +3292,9 @@ void rtw_joinbss_reset(_adapter *padapter)
//the fucntion is >= passive_level
unsigned int rtw_restructure_ht_ie(_adapter *padapter, u8 *in_ie, u8 *out_ie, uint in_len, uint *pout_len)
{
u32 ielen, out_len;
u32 ielen;
HT_CAP_AMPDU_FACTOR max_rx_ampdu_factor;
unsigned char *p, *pframe;
unsigned char *p;
struct rtw_ieee80211_ht_cap ht_capie;
unsigned char WMM_IE[] = {0x00, 0x50, 0xf2, 0x02, 0x00, 0x01, 0x00};
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
@ -3332,19 +3306,11 @@ unsigned int rtw_restructure_ht_ie(_adapter *padapter, u8 *in_ie, u8 *out_ie, ui
p = rtw_get_ie(in_ie+12, _HT_CAPABILITY_IE_, &ielen, in_len-12);
if (p && ielen>0)
{
if (pqospriv->qos_option == 0)
{
out_len = *pout_len;
pframe = rtw_set_ie(out_ie+out_len, _VENDOR_SPECIFIC_IE_,
_WMM_IE_Length_, WMM_IE, pout_len);
if (p && ielen>0) {
if (pqospriv->qos_option == 0) {
pqospriv->qos_option = 1;
}
out_len = *pout_len;
_rtw_memset(&ht_capie, 0, sizeof(struct rtw_ieee80211_ht_cap));
ht_capie.cap_info = IEEE80211_HT_CAP_SUP_WIDTH |IEEE80211_HT_CAP_SGI_20 |
@ -3381,29 +3347,11 @@ unsigned int rtw_restructure_ht_ie(_adapter *padapter, u8 *in_ie, u8 *out_ie, ui
ht_capie.ampdu_params_info |= (IEEE80211_HT_CAP_AMPDU_DENSITY&(0x07<<2));
else
ht_capie.ampdu_params_info |= (IEEE80211_HT_CAP_AMPDU_DENSITY&0x00);
pframe = rtw_set_ie(out_ie+out_len, _HT_CAPABILITY_IE_,
sizeof(struct rtw_ieee80211_ht_cap), (unsigned char*)&ht_capie, pout_len);
//_rtw_memcpy(out_ie+out_len, p, ielen+2);//gtest
//*pout_len = *pout_len + (ielen+2);
phtpriv->ht_option = true;
p = rtw_get_ie(in_ie+12, _HT_ADD_INFO_IE_, &ielen, in_len-12);
if (p && (ielen==sizeof(struct ieee80211_ht_addt_info)))
{
out_len = *pout_len;
pframe = rtw_set_ie(out_ie+out_len, _HT_ADD_INFO_IE_, ielen, p+2 , pout_len);
}
}
return (phtpriv->ht_option);
}
//the fucntion is > passive_level (in critical_section)
@ -3413,7 +3361,6 @@ void rtw_update_ht_cap(_adapter *padapter, u8 *pie, uint ie_len)
int len;
//struct sta_info *bmc_sta, *psta;
struct rtw_ieee80211_ht_cap *pht_capie;
struct ieee80211_ht_addt_info *pht_addtinfo;
//struct recv_reorder_ctrl *preorder_ctrl;
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
struct ht_priv *phtpriv = &pmlmepriv->htpriv;
@ -3467,9 +3414,7 @@ void rtw_update_ht_cap(_adapter *padapter, u8 *pie, uint ie_len)
len=0;
p = rtw_get_ie(pie+sizeof (NDIS_802_11_FIXED_IEs), _HT_ADD_INFO_IE_, &len, ie_len-sizeof (NDIS_802_11_FIXED_IEs));
if (p && len>0)
{
pht_addtinfo = (struct ieee80211_ht_addt_info *)(p+2);
if (p && len>0) {
//todo:
}

View file

@ -1317,7 +1317,7 @@ auth_fail:
unsigned int OnAuthClient(_adapter *padapter, union recv_frame *precv_frame)
{
unsigned int seq, len, status, algthm, offset;
unsigned int seq, len, status, offset;
unsigned char *p;
unsigned int go2asoc = 0;
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
@ -1336,7 +1336,6 @@ unsigned int OnAuthClient(_adapter *padapter, union recv_frame *precv_frame)
offset = (GetPrivacy(pframe))? 4: 0;
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));
@ -1419,7 +1418,7 @@ unsigned int OnAssocReq(_adapter *padapter, union recv_frame *precv_frame)
{
#ifdef CONFIG_AP_MODE
_irqL irqL;
u16 capab_info, listen_interval;
u16 capab_info;
struct rtw_ieee802_11_elems elems;
struct sta_info *pstat;
unsigned char reassoc, *p, *pos, *wpa_ie;
@ -1487,9 +1486,6 @@ unsigned int OnAssocReq(_adapter *padapter, union recv_frame *precv_frame)
}
capab_info = RTW_GET_LE16(pframe + WLAN_HDR_A3_LEN);
//capab_info = le16_to_cpu(*(unsigned short *)(pframe + WLAN_HDR_A3_LEN));
//listen_interval = le16_to_cpu(*(unsigned short *)(pframe + WLAN_HDR_A3_LEN+2));
listen_interval = RTW_GET_LE16(pframe + WLAN_HDR_A3_LEN+2);
left = pkt_len - (IEEE80211_3ADDR_LEN + ie_offset);
pos = pframe + (IEEE80211_3ADDR_LEN + ie_offset);
@ -5313,7 +5309,7 @@ static unsigned int on_action_public_p2p(union recv_frame *precv_frame)
// Commented by Kurt 20120113
// Get peer_dev_addr here if peer doesn't issue prov_disc frame.
if ( _rtw_memcmp(pwdinfo->rx_prov_disc_info.peerDevAddr, empty_addr, ETH_ALEN) );
if (_rtw_memcmp(pwdinfo->rx_prov_disc_info.peerDevAddr, empty_addr, ETH_ALEN))
_rtw_memcpy(pwdinfo->rx_prov_disc_info.peerDevAddr, GetAddr2Ptr(pframe), ETH_ALEN);
result = process_p2p_group_negotation_req( pwdinfo, frame_body, len );
@ -5736,7 +5732,7 @@ unsigned int OnAction_p2p(_adapter *padapter, union recv_frame *precv_frame)
{
#ifdef CONFIG_P2P
u8 *frame_body;
u8 category, OUI_Subtype, dialogToken=0;
u8 category, OUI_Subtype;
u8 *pframe = precv_frame->u.hdr.rx_data;
uint len = precv_frame->u.hdr.len;
struct wifidirect_info *pwdinfo = &( padapter->wdinfo );
@ -5766,7 +5762,6 @@ unsigned int OnAction_p2p(_adapter *padapter, union recv_frame *precv_frame)
{
len -= sizeof(struct rtw_ieee80211_hdr_3addr);
OUI_Subtype = frame_body[5];
dialogToken = frame_body[6];
switch (OUI_Subtype) {
case P2P_NOTICE_OF_ABSENCE:
@ -7871,7 +7866,6 @@ void issue_action_BA(_adapter *padapter, unsigned char *raddr, unsigned char act
u16 reason_code;
u16 BA_timeout_value;
__le16 le_tmp;
__le16 lestatus;
u16 BA_starting_seqctrl;
HT_CAP_AMPDU_FACTOR max_rx_ampdu_factor;
struct xmit_frame *pmgntframe;
@ -7924,9 +7918,6 @@ void issue_action_BA(_adapter *padapter, unsigned char *raddr, unsigned char act
pframe = rtw_set_fixed_ie(pframe, 1, &(category), &(pattrib->pktlen));
pframe = rtw_set_fixed_ie(pframe, 1, &(action), &(pattrib->pktlen));
lestatus = cpu_to_le16(status);
if (category == 3) {
switch (action) {
case 0: //ADDBA req
@ -11114,7 +11105,10 @@ _func_exit_;
u8 mlme_evt_hdl(_adapter *padapter, unsigned char *pbuf)
{
u8 evt_code, evt_seq;
u8 evt_code;
#ifdef CHECK_EVENT_SEQ
u8 evt_seq;
#endif
u16 evt_sz;
uint *peventbuf;
void (*event_callback)(_adapter *dev, u8 *pbuf);
@ -11122,7 +11116,9 @@ u8 mlme_evt_hdl(_adapter *padapter, unsigned char *pbuf)
peventbuf = (uint*)pbuf;
evt_sz = (u16)(*peventbuf&0xffff);
#ifdef CHECK_EVENT_SEQ
evt_seq = (u8)((*peventbuf>>24)&0x7f);
#endif
evt_code = (u8)((*peventbuf>>16)&0xff);
@ -12217,14 +12213,15 @@ u8 set_chplan_hdl(_adapter *padapter, unsigned char *pbuf)
u8 led_blink_hdl(_adapter *padapter, unsigned char *pbuf)
{
#ifdef CONFIG_LED_HANDLED_BY_CMD_THREAD
struct LedBlink_param *ledBlink_param;
#endif
if (!pbuf)
return H2C_PARAMETERS_ERROR;
#ifdef CONFIG_LED_HANDLED_BY_CMD_THREAD
ledBlink_param = (struct LedBlink_param *)pbuf;
#ifdef CONFIG_LED_HANDLED_BY_CMD_THREAD
BlinkHandler(ledBlink_param->pLed);
#endif

View file

@ -366,7 +366,6 @@ MPT_InitializeAdapter(
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(pAdapter);
s32 rtStatus = _SUCCESS;
PMPT_CONTEXT pMptCtx = &pAdapter->mppriv.MptCtx;
u32 ledsetting;
struct mlme_priv *pmlmepriv = &pAdapter->mlmepriv;
//-------------------------------------------------------------------------
@ -394,52 +393,18 @@ MPT_InitializeAdapter(
pMptCtx->CurrMptAct = NULL;
//-------------------------------------------------------------------------
#if 1
// Don't accept any packets
rtw_write32(pAdapter, REG_RCR, 0);
#else
// Accept CRC error and destination address
//pHalData->ReceiveConfig |= (RCR_ACRC32|RCR_AAP);
//rtw_write32(pAdapter, REG_RCR, pHalData->ReceiveConfig);
rtw_write32(pAdapter, REG_RCR, 0x70000101);
#endif
if (IS_HARDWARE_TYPE_8192DU(pAdapter))
{
rtw_write32(pAdapter, REG_LEDCFG0, 0x8888);
}
else
{
//rtw_write32(pAdapter, REG_LEDCFG0, 0x08080);
ledsetting = rtw_read32(pAdapter, REG_LEDCFG0);
#if defined (CONFIG_RTL8192C) || defined( CONFIG_RTL8192D )
rtw_write32(pAdapter, REG_LEDCFG0, ledsetting & ~LED0DIS);
#endif
}
PHY_IQCalibrate(pAdapter, false);
dm_CheckTXPowerTracking(&pHalData->odmpriv); //trigger thermal meter
PHY_LCCalibrate(pAdapter);
#ifdef CONFIG_PCI_HCI
PHY_SetRFPathSwitch(pAdapter, 1/*pHalData->bDefaultAntenna*/); //Wifi default use Main
#else
#ifdef CONFIG_RTL8192C
if (pHalData->BoardType == BOARD_MINICARD)
PHY_SetRFPathSwitch(pAdapter, 1/*pHalData->bDefaultAntenna*/); //default use Main
#endif
#endif
pMptCtx->backup0xc50 = (u1Byte)PHY_QueryBBReg(pAdapter, rOFDM0_XAAGCCore1, bMaskByte0);
pMptCtx->backup0xc58 = (u1Byte)PHY_QueryBBReg(pAdapter, rOFDM0_XBAGCCore1, bMaskByte0);
pMptCtx->backup0xc30 = (u1Byte)PHY_QueryBBReg(pAdapter, rOFDM0_RxDetector1, bMaskByte0);
#ifdef CONFIG_RTL8188E
pMptCtx->backup0x52_RF_A = (u1Byte)PHY_QueryRFReg(pAdapter, RF_PATH_A, RF_0x52, 0x000F0);
pMptCtx->backup0x52_RF_B = (u1Byte)PHY_QueryRFReg(pAdapter, RF_PATH_A, RF_0x52, 0x000F0);
#endif
//set ant to wifi side in mp mode
rtw_write16(pAdapter, 0x870, 0x300);

View file

@ -1569,16 +1569,7 @@ unsigned int mp_ioctl_xmit_packet_hdl(struct oid_par_priv *poid_par_priv)
//------------------------------------------------------------------------------
NDIS_STATUS oid_rt_set_power_down_hdl(struct oid_par_priv *poid_par_priv)
{
#ifdef PLATFORM_OS_XP
_irqL oldirql;
#endif
u8 bpwrup;
NDIS_STATUS status = NDIS_STATUS_SUCCESS;
#ifdef PLATFORM_LINUX
#if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI)
PADAPTER padapter = (PADAPTER)(poid_par_priv->adapter_context);
#endif
#endif
_func_enter_;
@ -1592,18 +1583,9 @@ _func_enter_;
_irqlevel_changed_(&oldirql, LOWER);
bpwrup = *(u8 *)poid_par_priv->information_buf;
//CALL the power_down function
#ifdef PLATFORM_LINUX
#if defined(CONFIG_RTL8712) //Linux MP insmod unknown symbol
dev_power_down(padapter,bpwrup);
#endif
#endif
_irqlevel_changed_(&oldirql, RAISE);
//DEBUG_ERR(("\n <=== Query OID_RT_PRO_READ_REGISTER.
// Add:0x%08x Width:%d Value:0x%08x\n",RegRWStruct->offset,RegRWStruct->width,RegRWStruct->value));
_func_exit_;
return status;

View file

@ -2695,7 +2695,9 @@ u8 process_p2p_group_negotation_req( struct wifidirect_info *pwdinfo, u8 *pframe
u8 peer_ch_num = 0;
u8 ch_list_inclusioned[50] = { 0x00 };
u8 ch_num_inclusioned = 0;
#if defined(CONFIG_WFD) && defined(CONFIG_TDLS)
u16 cap_attr;
#endif //defined(CONFIG_WFD) && defined(CONFIG_TDLS)
__le16 le_tmp;
rtw_p2p_set_state(pwdinfo, P2P_STATE_GONEGO_ING);
@ -2703,9 +2705,8 @@ u8 process_p2p_group_negotation_req( struct wifidirect_info *pwdinfo, u8 *pframe
//Check P2P Capability ATTR
if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_CAPABILITY, (u8*)&le_tmp, (uint*)&attr_contentlen) )
{
cap_attr = le16_to_cpu(le_tmp);
#if defined(CONFIG_WFD) && defined(CONFIG_TDLS)
cap_attr = le16_to_cpu(le_tmp);
if (!(cap_attr & P2P_GRPCAP_INTRABSS) )
ptdlsinfo->ap_prohibited = true;
#endif //defined(CONFIG_WFD) && defined(CONFIG_TDLS)
@ -2894,7 +2895,9 @@ u8 process_p2p_group_negotation_resp( struct wifidirect_info *pwdinfo, u8 *pfram
uint ch_cnt = 0;
u8 ch_content[50] = { 0x00 };
u8 groupid[ 38 ];
#ifdef CONFIG_TDLS
u16 cap_attr;
#endif // CONFIG_TDLS
u8 peer_ch_list[50] = { 0x00 };
u8 peer_ch_num = 0;
u8 ch_list_inclusioned[50] = { 0x00 };
@ -2904,8 +2907,8 @@ u8 process_p2p_group_negotation_resp( struct wifidirect_info *pwdinfo, u8 *pfram
while (p2p_ie) { // Found the P2P IE.
//Check P2P Capability ATTR
if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_CAPABILITY, (u8*)&le_tmp, (uint*)&attr_contentlen) ) {
cap_attr = le16_to_cpu(le_tmp);
#ifdef CONFIG_TDLS
cap_attr = le16_to_cpu(le_tmp);
if (!(cap_attr & P2P_GRPCAP_INTRABSS) )
ptdlsinfo->ap_prohibited = true;
#endif // CONFIG_TDLS
@ -3222,7 +3225,6 @@ static void find_phase_handler( _adapter* padapter )
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
NDIS_802_11_SSID ssid;
_irqL irqL;
u8 _status = 0;
_func_enter_;
@ -3233,7 +3235,6 @@ _func_enter_;
rtw_p2p_set_state(pwdinfo, P2P_STATE_FIND_PHASE_SEARCH);
_enter_critical_bh(&pmlmepriv->lock, &irqL);
_status = rtw_sitesurvey_cmd(padapter, &ssid, 1, NULL, 0);
_exit_critical_bh(&pmlmepriv->lock, &irqL);

View file

@ -2427,7 +2427,7 @@ union recv_frame * recvframe_defrag(_adapter *adapter,_queue *defrag_q);
union recv_frame * recvframe_defrag(_adapter *adapter,_queue *defrag_q)
{
_list *plist, *phead;
u8 *data,wlanhdr_offset;
u8 wlanhdr_offset;
u8 curfragnum;
struct recv_frame_hdr *pfhdr,*pnfhdr;
union recv_frame* prframe, *pnextrframe;
@ -2466,7 +2466,6 @@ _func_enter_;
plist = get_next(plist);
data=get_recvframe_data(prframe);
while (rtw_end_of_queue_search(phead, plist) == false)
{
@ -2785,15 +2784,11 @@ static int amsdu_to_msdu(_adapter *padapter, union recv_frame *prframe)
#ifdef CONFIG_BR_EXT
// Insert NAT2.5 RX here!
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
void *br_port = NULL;
#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 35))
br_port = padapter->pnetdev->br_port;
#else // (LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 35))
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 35))
rcu_read_lock();
br_port = rcu_dereference(padapter->pnetdev->rx_handler_data);
rcu_read_unlock();
#endif // (LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 35))
#endif // (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 35))
#endif // CONFIG_BR_EXT
sub_skb->protocol = eth_type_trans(sub_skb, padapter->pnetdev);
@ -3867,8 +3862,12 @@ void rtw_signal_stat_timer_hdl(RTW_TIMER_HDL_ARGS){
u32 tmp_s, tmp_q;
u8 avg_signal_strength = 0;
u8 avg_signal_qual = 0;
#if defined(DBG_RX_SIGNAL_DISPLAY_PROCESSING)
u32 num_signal_strength = 0;
#endif
#if defined(DBG_RX_SIGNAL_DISPLAY_PROCESSING)
u32 num_signal_qual = 0;
#endif
u8 _alpha = 3; // this value is based on converging_constant = 5000 and sampling_interval = 1000
if (adapter->recvpriv.is_signal_dbg) {
@ -3879,14 +3878,18 @@ void rtw_signal_stat_timer_hdl(RTW_TIMER_HDL_ARGS){
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;
#if defined(DBG_RX_SIGNAL_DISPLAY_PROCESSING)
num_signal_strength = recvpriv->signal_strength_data.total_num;
#endif
// after avg_vals are accquired, we can re-stat the signal values
recvpriv->signal_strength_data.update_req = 1;
}
if (recvpriv->signal_qual_data.update_req == 0) {// update_req is clear, means we got rx
avg_signal_qual = recvpriv->signal_qual_data.avg_val;
#if defined(DBG_RX_SIGNAL_DISPLAY_PROCESSING)
num_signal_qual = recvpriv->signal_qual_data.total_num;
#endif
// after avg_vals are accquired, we can re-stat the signal values
recvpriv->signal_qual_data.update_req = 1;
}
@ -3913,7 +3916,7 @@ void rtw_signal_stat_timer_hdl(RTW_TIMER_HDL_ARGS){
recvpriv->rssi = (s8)translate_percentage_to_dbm(tmp_s);
recvpriv->signal_qual = tmp_q;
#if defined(DBG_RX_SIGNAL_DISPLAY_PROCESSING) && 1
#if defined(DBG_RX_SIGNAL_DISPLAY_PROCESSING)
DBG_88E("%s signal_strength:%3u, rssi:%3d, signal_qual:%3u"
", num_signal_strength:%u, num_signal_qual:%u"
"\n"

View file

@ -653,7 +653,6 @@ u32 rtw_tkip_encrypt(_adapter *padapter, u8 *pxmitframe)
u8 hw_hdr_offset = 0;
struct arc4context mycontext;
sint curfragnum,length;
u32 prwskeylen;
u8 *pframe, *payload,*iv,*prwskey;
union pn48 dot11txpn;
@ -703,8 +702,6 @@ _func_enter_;
prwskey=&stainfo->dot118021x_UncstKey.skey[0];
}
prwskeylen=16;
for (curfragnum=0;curfragnum<pattrib->nr_frags;curfragnum++){
iv=pframe+pattrib->hdrlen;
payload=pframe+pattrib->iv_len+pattrib->hdrlen;
@ -767,7 +764,6 @@ u32 rtw_tkip_decrypt(_adapter *padapter, u8 *precvframe)
u8 crc[4];
struct arc4context mycontext;
sint length;
u32 prwskeylen;
u8 *pframe, *payload,*iv,*prwskey;
union pn48 dot11txpn;
@ -798,13 +794,11 @@ _func_enter_;
//DBG_88E("rx bc/mc packets, to perform sw rtw_tkip_decrypt\n");
//prwskey = psecuritypriv->dot118021XGrpKey[psecuritypriv->dot118021XGrpKeyid].skey;
prwskey = psecuritypriv->dot118021XGrpKey[prxattrib->key_index].skey;
prwskeylen=16;
}
else
{
RT_TRACE(_module_rtl871x_security_c_,_drv_err_,("rtw_tkip_decrypt: stainfo!=NULL!!!\n"));
prwskey=&stainfo->dot118021x_UncstKey.skey[0];
prwskeylen=16;
}
iv=pframe+prxattrib->hdrlen;
@ -1513,7 +1507,6 @@ u32 rtw_aes_encrypt(_adapter *padapter, u8 *pxmitframe)
/* Intermediate Buffers */
sint curfragnum,length;
u32 prwskeylen;
u8 *pframe,*prwskey; //, *payload,*iv
u8 hw_hdr_offset = 0;
struct sta_info *stainfo;
@ -1576,9 +1569,6 @@ _func_enter_;
}
}
#endif //CONFIG_TDLS
prwskeylen=16;
for (curfragnum=0;curfragnum<pattrib->nr_frags;curfragnum++){
if ((curfragnum+1)==pattrib->nr_frags){ //4 the last fragment

View file

@ -319,12 +319,9 @@ _func_exit_;
return _SUCCESS;
}
//struct sta_info *rtw_alloc_stainfo(_queue *pfree_sta_queue, unsigned char *hwaddr)
struct sta_info *rtw_alloc_stainfo(struct sta_priv *pstapriv, u8 *hwaddr)
struct sta_info *rtw_alloc_stainfo(struct sta_priv *pstapriv, u8 *hwaddr)
{
_irqL irqL, irqL2;
uint tmp_aid;
s32 index;
_list *phash_list;
struct sta_info *psta;
@ -339,30 +336,18 @@ _func_enter_;
_enter_critical_bh(&(pfree_sta_queue->lock), &irqL);
if (_rtw_queue_empty(pfree_sta_queue) == true)
{
if (_rtw_queue_empty(pfree_sta_queue) == true) {
_exit_critical_bh(&(pfree_sta_queue->lock), &irqL);
psta = NULL;
}
else
{
} else {
psta = LIST_CONTAINOR(get_next(&pfree_sta_queue->queue), struct sta_info, list);
rtw_list_delete(&(psta->list));
_exit_critical_bh(&(pfree_sta_queue->lock), &irqL);
tmp_aid = psta->aid;
_rtw_init_stainfo(psta);
_rtw_memcpy(psta->hwaddr, hwaddr, ETH_ALEN);
index = wifi_mac_hash(hwaddr);
RT_TRACE(_module_rtl871x_sta_mgt_c_,_drv_info_,("rtw_alloc_stainfo: index = %x", index));
if (index >= NUM_STA){
if (index >= NUM_STA) {
RT_TRACE(_module_rtl871x_sta_mgt_c_,_drv_err_,("ERROR=> rtw_alloc_stainfo: index >= NUM_STA"));
psta= NULL;
goto exit;
@ -733,7 +718,6 @@ u32 rtw_init_bcmc_stainfo(_adapter* padapter)
{
struct sta_info *psta;
struct tx_servq *ptxservq;
u32 res=_SUCCESS;
NDIS_802_11_MAC_ADDRESS bcast_addr= {0xff,0xff,0xff,0xff,0xff,0xff};
@ -753,24 +737,11 @@ _func_enter_;
// default broadcast & multicast use macid 1
psta->mac_id = 1;
ptxservq= &(psta->sta_xmitpriv.be_q);
/*
_enter_critical(&pstapending->lock, &irqL0);
if (rtw_is_list_empty(&ptxservq->tx_pending))
rtw_list_insert_tail(&ptxservq->tx_pending, get_list_head(pstapending));
_exit_critical(&pstapending->lock, &irqL0);
*/
exit:
_func_exit_;
return _SUCCESS;
return res;
}
struct sta_info* rtw_get_bcmc_stainfo(_adapter* padapter)
{
struct sta_info *psta;

View file

@ -2262,7 +2262,11 @@ int update_sta_support_rate(_adapter *padapter, u8* pvar_ie, uint var_ie_len, in
void process_addba_req(_adapter *padapter, u8 *paddba_req, u8 *addr)
{
struct sta_info *psta;
u16 tid, start_seq, param;
u16 tid;
#ifdef CONFIG_UPDATE_INDICATE_SEQ_WHILE_PROCESS_ADDBA_REQ
u16 start_seq;
#endif
u16 param;
struct recv_reorder_ctrl *preorder_ctrl;
struct sta_priv *pstapriv = &padapter->stapriv;
struct ADDBA_request *preq = (struct ADDBA_request*)paddba_req;
@ -2271,9 +2275,10 @@ void process_addba_req(_adapter *padapter, u8 *paddba_req, u8 *addr)
psta = rtw_get_stainfo(pstapriv, addr);
if (psta)
{
if (psta) {
#ifdef CONFIG_UPDATE_INDICATE_SEQ_WHILE_PROCESS_ADDBA_REQ
start_seq = le16_to_cpu(preq->BA_starting_seqctrl) >> 4;
#endif
param = le16_to_cpu(preq->BA_para_set);
tid = (param>>2)&0x0f;
@ -2292,7 +2297,6 @@ void process_addba_req(_adapter *padapter, u8 *paddba_req, u8 *addr)
preorder_ctrl->enable =(pmlmeinfo->bAcceptAddbaReq == true)? true :false;
}
}
void update_TSF(struct mlme_ext_priv *pmlmeext, u8 *pframe, uint len)

View file

@ -598,7 +598,6 @@ static void set_qos(struct pkt_file *ppktfile, struct pkt_attrib *pattrib)
static s32 update_attrib(_adapter *padapter, _pkt *pkt, struct pkt_attrib *pattrib)
{
uint i;
struct pkt_file pktfile;
struct sta_info *psta = NULL;
struct ethhdr etherhdr;
@ -613,7 +612,7 @@ static s32 update_attrib(_adapter *padapter, _pkt *pkt, struct pkt_attrib *pattr
_func_enter_;
_rtw_open_pktfile(pkt, &pktfile);
i = _rtw_pktfile_read(&pktfile, (u8*)&etherhdr, ETH_HLEN);
_rtw_pktfile_read(&pktfile, (u8*)&etherhdr, ETH_HLEN);
pattrib->ether_type = ntohs(etherhdr.h_proto);