mirror of
https://github.com/lwfinger/rtl8188eu.git
synced 2024-11-24 21:43:40 +00:00
rtlwifi: Remove list-handling macros
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
This commit is contained in:
parent
6d3d853360
commit
209e50ad60
14 changed files with 225 additions and 293 deletions
|
@ -284,17 +284,17 @@ void expire_timeout_chk(struct adapter *padapter)
|
||||||
spin_lock_bh(&pstapriv->auth_list_lock);
|
spin_lock_bh(&pstapriv->auth_list_lock);
|
||||||
|
|
||||||
phead = &pstapriv->auth_list;
|
phead = &pstapriv->auth_list;
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
/* check auth_queue */
|
/* check auth_queue */
|
||||||
while ((rtw_end_of_queue_search(phead, plist)) == false) {
|
while (phead != plist) {
|
||||||
psta = container_of(plist, struct sta_info, auth_list);
|
psta = container_of(plist, struct sta_info, auth_list);
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
|
|
||||||
if (psta->expire_to > 0) {
|
if (psta->expire_to > 0) {
|
||||||
psta->expire_to--;
|
psta->expire_to--;
|
||||||
if (psta->expire_to == 0) {
|
if (psta->expire_to == 0) {
|
||||||
rtw_list_delete(&psta->auth_list);
|
list_del_init(&psta->auth_list);
|
||||||
pstapriv->auth_list_cnt--;
|
pstapriv->auth_list_cnt--;
|
||||||
|
|
||||||
DBG_88E("auth expire %6ph\n",
|
DBG_88E("auth expire %6ph\n",
|
||||||
|
@ -318,12 +318,12 @@ void expire_timeout_chk(struct adapter *padapter)
|
||||||
spin_lock_bh(&pstapriv->asoc_list_lock);
|
spin_lock_bh(&pstapriv->asoc_list_lock);
|
||||||
|
|
||||||
phead = &pstapriv->asoc_list;
|
phead = &pstapriv->asoc_list;
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
/* check asoc_queue */
|
/* check asoc_queue */
|
||||||
while ((rtw_end_of_queue_search(phead, plist)) == false) {
|
while (phead != plist) {
|
||||||
psta = container_of(plist, struct sta_info, asoc_list);
|
psta = container_of(plist, struct sta_info, asoc_list);
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
|
|
||||||
if (chk_sta_is_alive(psta) || !psta->expire_to) {
|
if (chk_sta_is_alive(psta) || !psta->expire_to) {
|
||||||
psta->expire_to = pstapriv->expire_to;
|
psta->expire_to = pstapriv->expire_to;
|
||||||
|
@ -364,7 +364,7 @@ void expire_timeout_chk(struct adapter *padapter)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
rtw_list_delete(&psta->asoc_list);
|
list_del_init(&psta->asoc_list);
|
||||||
pstapriv->asoc_list_cnt--;
|
pstapriv->asoc_list_cnt--;
|
||||||
|
|
||||||
DBG_88E("asoc expire %pM, state = 0x%x\n", (psta->hwaddr), psta->state);
|
DBG_88E("asoc expire %pM, state = 0x%x\n", (psta->hwaddr), psta->state);
|
||||||
|
@ -420,7 +420,7 @@ void expire_timeout_chk(struct adapter *padapter)
|
||||||
|
|
||||||
DBG_88E("asoc expire %pM, state = 0x%x\n", (psta->hwaddr), psta->state);
|
DBG_88E("asoc expire %pM, state = 0x%x\n", (psta->hwaddr), psta->state);
|
||||||
spin_lock_bh(&pstapriv->asoc_list_lock);
|
spin_lock_bh(&pstapriv->asoc_list_lock);
|
||||||
rtw_list_delete(&psta->asoc_list);
|
list_del_init(&psta->asoc_list);
|
||||||
pstapriv->asoc_list_cnt--;
|
pstapriv->asoc_list_cnt--;
|
||||||
updated = ap_free_sta(padapter, psta, true, WLAN_REASON_DEAUTH_LEAVING);
|
updated = ap_free_sta(padapter, psta, true, WLAN_REASON_DEAUTH_LEAVING);
|
||||||
spin_unlock_bh(&pstapriv->asoc_list_lock);
|
spin_unlock_bh(&pstapriv->asoc_list_lock);
|
||||||
|
@ -1144,11 +1144,11 @@ int rtw_acl_add_sta(struct adapter *padapter, u8 *addr)
|
||||||
spin_lock_bh(&pacl_node_q->lock);
|
spin_lock_bh(&pacl_node_q->lock);
|
||||||
|
|
||||||
phead = get_list_head(pacl_node_q);
|
phead = get_list_head(pacl_node_q);
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
while (!rtw_end_of_queue_search(phead, plist)) {
|
while (phead != plist) {
|
||||||
paclnode = container_of(plist, struct rtw_wlan_acl_node, list);
|
paclnode = container_of(plist, struct rtw_wlan_acl_node, list);
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
|
|
||||||
if (!memcmp(paclnode->addr, addr, ETH_ALEN)) {
|
if (!memcmp(paclnode->addr, addr, ETH_ALEN)) {
|
||||||
if (paclnode->valid) {
|
if (paclnode->valid) {
|
||||||
|
@ -1205,17 +1205,17 @@ int rtw_acl_remove_sta(struct adapter *padapter, u8 *addr)
|
||||||
spin_lock_bh(&pacl_node_q->lock);
|
spin_lock_bh(&pacl_node_q->lock);
|
||||||
|
|
||||||
phead = get_list_head(pacl_node_q);
|
phead = get_list_head(pacl_node_q);
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
while (!rtw_end_of_queue_search(phead, plist)) {
|
while (phead != plist) {
|
||||||
paclnode = container_of(plist, struct rtw_wlan_acl_node, list);
|
paclnode = container_of(plist, struct rtw_wlan_acl_node, list);
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
|
|
||||||
if (!memcmp(paclnode->addr, addr, ETH_ALEN)) {
|
if (!memcmp(paclnode->addr, addr, ETH_ALEN)) {
|
||||||
if (paclnode->valid) {
|
if (paclnode->valid) {
|
||||||
paclnode->valid = false;
|
paclnode->valid = false;
|
||||||
|
|
||||||
rtw_list_delete(&paclnode->list);
|
list_del_init(&paclnode->list);
|
||||||
|
|
||||||
pacl_list->num--;
|
pacl_list->num--;
|
||||||
}
|
}
|
||||||
|
@ -1504,13 +1504,13 @@ void associated_clients_update(struct adapter *padapter, u8 updated)
|
||||||
spin_lock_bh(&pstapriv->asoc_list_lock);
|
spin_lock_bh(&pstapriv->asoc_list_lock);
|
||||||
|
|
||||||
phead = &pstapriv->asoc_list;
|
phead = &pstapriv->asoc_list;
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
/* check asoc_queue */
|
/* check asoc_queue */
|
||||||
while ((rtw_end_of_queue_search(phead, plist)) == false) {
|
while (phead != plist) {
|
||||||
psta = container_of(plist, struct sta_info, asoc_list);
|
psta = container_of(plist, struct sta_info, asoc_list);
|
||||||
|
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
|
|
||||||
VCS_update(padapter, psta);
|
VCS_update(padapter, psta);
|
||||||
}
|
}
|
||||||
|
@ -1777,12 +1777,12 @@ int rtw_ap_inform_ch_switch(struct adapter *padapter, u8 new_ch, u8 ch_offset)
|
||||||
|
|
||||||
spin_lock_bh(&pstapriv->asoc_list_lock);
|
spin_lock_bh(&pstapriv->asoc_list_lock);
|
||||||
phead = &pstapriv->asoc_list;
|
phead = &pstapriv->asoc_list;
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
/* for each sta in asoc_queue */
|
/* for each sta in asoc_queue */
|
||||||
while (!rtw_end_of_queue_search(phead, plist)) {
|
while (phead != plist) {
|
||||||
psta = container_of(plist, struct sta_info, asoc_list);
|
psta = container_of(plist, struct sta_info, asoc_list);
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
|
|
||||||
issue_action_spct_ch_switch(padapter, psta->hwaddr, new_ch, ch_offset);
|
issue_action_spct_ch_switch(padapter, psta->hwaddr, new_ch, ch_offset);
|
||||||
psta->expire_to = ((pstapriv->expire_to * 2) > 5) ? 5 : (pstapriv->expire_to * 2);
|
psta->expire_to = ((pstapriv->expire_to * 2) > 5) ? 5 : (pstapriv->expire_to * 2);
|
||||||
|
@ -1811,15 +1811,15 @@ int rtw_sta_flush(struct adapter *padapter)
|
||||||
|
|
||||||
spin_lock_bh(&pstapriv->asoc_list_lock);
|
spin_lock_bh(&pstapriv->asoc_list_lock);
|
||||||
phead = &pstapriv->asoc_list;
|
phead = &pstapriv->asoc_list;
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
/* free sta asoc_queue */
|
/* free sta asoc_queue */
|
||||||
while ((rtw_end_of_queue_search(phead, plist)) == false) {
|
while (phead != plist) {
|
||||||
psta = container_of(plist, struct sta_info, asoc_list);
|
psta = container_of(plist, struct sta_info, asoc_list);
|
||||||
|
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
|
|
||||||
rtw_list_delete(&psta->asoc_list);
|
list_del_init(&psta->asoc_list);
|
||||||
pstapriv->asoc_list_cnt--;
|
pstapriv->asoc_list_cnt--;
|
||||||
|
|
||||||
ap_free_sta(padapter, psta, true, WLAN_REASON_DEAUTH_LEAVING);
|
ap_free_sta(padapter, psta, true, WLAN_REASON_DEAUTH_LEAVING);
|
||||||
|
@ -1941,15 +1941,15 @@ void stop_ap_mode(struct adapter *padapter)
|
||||||
/* for ACL */
|
/* for ACL */
|
||||||
spin_lock_bh(&pacl_node_q->lock);
|
spin_lock_bh(&pacl_node_q->lock);
|
||||||
phead = get_list_head(pacl_node_q);
|
phead = get_list_head(pacl_node_q);
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
while ((rtw_end_of_queue_search(phead, plist)) == false) {
|
while (phead != plist) {
|
||||||
paclnode = container_of(plist, struct rtw_wlan_acl_node, list);
|
paclnode = container_of(plist, struct rtw_wlan_acl_node, list);
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
|
|
||||||
if (paclnode->valid) {
|
if (paclnode->valid) {
|
||||||
paclnode->valid = false;
|
paclnode->valid = false;
|
||||||
|
|
||||||
rtw_list_delete(&paclnode->list);
|
list_del_init(&paclnode->list);
|
||||||
|
|
||||||
pacl_list->num--;
|
pacl_list->num--;
|
||||||
}
|
}
|
||||||
|
|
|
@ -159,10 +159,10 @@ struct cmd_obj *_rtw_dequeue_cmd(struct __queue *queue)
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
spin_lock_irqsave(&queue->lock, flags);
|
spin_lock_irqsave(&queue->lock, flags);
|
||||||
if (rtw_is_list_empty(&(queue->queue))) {
|
if (list_empty(&(queue->queue))) {
|
||||||
obj = NULL;
|
obj = NULL;
|
||||||
} else {
|
} else {
|
||||||
obj = container_of(get_next(&(queue->queue)), struct cmd_obj, list);
|
obj = container_of((&(queue->queue))->next, struct cmd_obj, list);
|
||||||
rtw_list_delete(&obj->list);
|
rtw_list_delete(&obj->list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -847,12 +847,12 @@ int proc_get_all_sta_info(char *page, char **start,
|
||||||
|
|
||||||
for (i = 0; i < NUM_STA; i++) {
|
for (i = 0; i < NUM_STA; i++) {
|
||||||
phead = &(pstapriv->sta_hash[i]);
|
phead = &(pstapriv->sta_hash[i]);
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
while ((rtw_end_of_queue_search(phead, plist)) == false) {
|
while (phead != plist) {
|
||||||
psta = container_of(plist, struct sta_info, hash_list);
|
psta = container_of(plist, struct sta_info, hash_list);
|
||||||
|
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
|
|
||||||
len += snprintf(page + len, count - len, "sta's macaddr: %pM\n", psta->hwaddr);
|
len += snprintf(page + len, count - len, "sta's macaddr: %pM\n", psta->hwaddr);
|
||||||
len += snprintf(page + len, count - len, "rtsen=%d, cts2slef=%d\n", psta->rtsen, psta->cts2self);
|
len += snprintf(page + len, count - len, "rtsen=%d, cts2slef=%d\n", psta->rtsen, psta->cts2self);
|
||||||
|
|
|
@ -71,7 +71,7 @@ u8 rtw_do_join(struct adapter *padapter)
|
||||||
|
|
||||||
spin_lock_bh(&pmlmepriv->scanned_queue.lock);
|
spin_lock_bh(&pmlmepriv->scanned_queue.lock);
|
||||||
phead = get_list_head(queue);
|
phead = get_list_head(queue);
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_, ("\n rtw_do_join: phead = %p; plist = %p\n\n\n", phead, plist));
|
RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_, ("\n rtw_do_join: phead = %p; plist = %p\n\n\n", phead, plist));
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ u8 rtw_do_join(struct adapter *padapter)
|
||||||
|
|
||||||
pmlmepriv->to_join = true;
|
pmlmepriv->to_join = true;
|
||||||
|
|
||||||
if (_rtw_queue_empty(queue)) {
|
if (list_empty(&queue->queue)) {
|
||||||
spin_unlock_bh(&pmlmepriv->scanned_queue.lock);
|
spin_unlock_bh(&pmlmepriv->scanned_queue.lock);
|
||||||
_clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING);
|
_clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING);
|
||||||
|
|
||||||
|
|
|
@ -175,12 +175,12 @@ struct wlan_network *_rtw_dequeue_network(struct __queue *queue)
|
||||||
|
|
||||||
spin_lock_bh(&queue->lock);
|
spin_lock_bh(&queue->lock);
|
||||||
|
|
||||||
if (_rtw_queue_empty(queue)) {
|
if (list_empty(&queue->queue)) {
|
||||||
pnetwork = NULL;
|
pnetwork = NULL;
|
||||||
} else {
|
} else {
|
||||||
pnetwork = container_of(get_next(&queue->queue), struct wlan_network, list);
|
pnetwork = container_of((&queue->queue)->next, struct wlan_network, list);
|
||||||
|
|
||||||
rtw_list_delete(&(pnetwork->list));
|
list_del_init(&(pnetwork->list));
|
||||||
}
|
}
|
||||||
|
|
||||||
spin_unlock_bh(&queue->lock);
|
spin_unlock_bh(&queue->lock);
|
||||||
|
@ -196,15 +196,15 @@ struct wlan_network *_rtw_alloc_network(struct mlme_priv *pmlmepriv)/* _queue *f
|
||||||
|
|
||||||
spin_lock_bh(&free_queue->lock);
|
spin_lock_bh(&free_queue->lock);
|
||||||
|
|
||||||
if (_rtw_queue_empty(free_queue) == true) {
|
if (list_empty(&free_queue->queue)) {
|
||||||
pnetwork = NULL;
|
pnetwork = NULL;
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
plist = get_next(&(free_queue->queue));
|
plist = (&(free_queue->queue))->next;
|
||||||
|
|
||||||
pnetwork = container_of(plist , struct wlan_network, list);
|
pnetwork = container_of(plist , struct wlan_network, list);
|
||||||
|
|
||||||
rtw_list_delete(&pnetwork->list);
|
list_del_init(&pnetwork->list);
|
||||||
|
|
||||||
RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("_rtw_alloc_network: ptr=%p\n", plist));
|
RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("_rtw_alloc_network: ptr=%p\n", plist));
|
||||||
pnetwork->network_type = 0;
|
pnetwork->network_type = 0;
|
||||||
|
@ -242,7 +242,7 @@ void _rtw_free_network(struct mlme_priv *pmlmepriv , struct wlan_network *pnetwo
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
spin_lock_bh(&free_queue->lock);
|
spin_lock_bh(&free_queue->lock);
|
||||||
rtw_list_delete(&(pnetwork->list));
|
list_del_init(&(pnetwork->list));
|
||||||
list_add_tail(&(pnetwork->list), &(free_queue->queue));
|
list_add_tail(&(pnetwork->list), &(free_queue->queue));
|
||||||
pmlmepriv->num_of_scanned--;
|
pmlmepriv->num_of_scanned--;
|
||||||
spin_unlock_bh(&free_queue->lock);
|
spin_unlock_bh(&free_queue->lock);
|
||||||
|
@ -256,7 +256,7 @@ void _rtw_free_network_nolock(struct mlme_priv *pmlmepriv, struct wlan_network *
|
||||||
return;
|
return;
|
||||||
if (pnetwork->fixed)
|
if (pnetwork->fixed)
|
||||||
return;
|
return;
|
||||||
rtw_list_delete(&(pnetwork->list));
|
list_del_init(&(pnetwork->list));
|
||||||
list_add_tail(&(pnetwork->list), get_list_head(free_queue));
|
list_add_tail(&(pnetwork->list), get_list_head(free_queue));
|
||||||
pmlmepriv->num_of_scanned--;
|
pmlmepriv->num_of_scanned--;
|
||||||
}
|
}
|
||||||
|
@ -277,13 +277,13 @@ struct wlan_network *_rtw_find_network(struct __queue *scanned_queue, u8 *addr)
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
phead = get_list_head(scanned_queue);
|
phead = get_list_head(scanned_queue);
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
while (plist != phead) {
|
while (plist != phead) {
|
||||||
pnetwork = container_of(plist, struct wlan_network , list);
|
pnetwork = container_of(plist, struct wlan_network , list);
|
||||||
if (!memcmp(addr, pnetwork->network.MacAddress, ETH_ALEN))
|
if (!memcmp(addr, pnetwork->network.MacAddress, ETH_ALEN))
|
||||||
break;
|
break;
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
}
|
}
|
||||||
if (plist == phead)
|
if (plist == phead)
|
||||||
pnetwork = NULL;
|
pnetwork = NULL;
|
||||||
|
@ -302,12 +302,12 @@ void _rtw_free_network_queue(struct adapter *padapter, u8 isfreeall)
|
||||||
spin_lock_bh(&scanned_queue->lock);
|
spin_lock_bh(&scanned_queue->lock);
|
||||||
|
|
||||||
phead = get_list_head(scanned_queue);
|
phead = get_list_head(scanned_queue);
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
while (rtw_end_of_queue_search(phead, plist) == false) {
|
while (phead != plist) {
|
||||||
pnetwork = container_of(plist, struct wlan_network, list);
|
pnetwork = container_of(plist, struct wlan_network, list);
|
||||||
|
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
|
|
||||||
_rtw_free_network(pmlmepriv, pnetwork, isfreeall);
|
_rtw_free_network(pmlmepriv, pnetwork, isfreeall);
|
||||||
}
|
}
|
||||||
|
@ -473,10 +473,10 @@ struct wlan_network *rtw_get_oldest_wlan_network(struct __queue *scanned_queue)
|
||||||
|
|
||||||
phead = get_list_head(scanned_queue);
|
phead = get_list_head(scanned_queue);
|
||||||
|
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
if (rtw_end_of_queue_search(phead, plist) == true)
|
if (phead == plist)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
pwlan = container_of(plist, struct wlan_network, list);
|
pwlan = container_of(plist, struct wlan_network, list);
|
||||||
|
@ -486,7 +486,7 @@ struct wlan_network *rtw_get_oldest_wlan_network(struct __queue *scanned_queue)
|
||||||
oldest = pwlan;
|
oldest = pwlan;
|
||||||
}
|
}
|
||||||
|
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
return oldest;
|
return oldest;
|
||||||
|
@ -560,33 +560,25 @@ void rtw_update_scanned_network(struct adapter *adapter, struct wlan_bssid_ex *t
|
||||||
struct __queue *queue = &(pmlmepriv->scanned_queue);
|
struct __queue *queue = &(pmlmepriv->scanned_queue);
|
||||||
struct wlan_network *pnetwork = NULL;
|
struct wlan_network *pnetwork = NULL;
|
||||||
struct wlan_network *oldest = NULL;
|
struct wlan_network *oldest = NULL;
|
||||||
struct mlme_ext_priv *pmlmeext = &(adapter->mlmeextpriv);
|
|
||||||
struct wifidirect_info *pwdinfo= &(adapter->wdinfo);
|
|
||||||
int target_find = 0;
|
|
||||||
|
|
||||||
spin_lock_bh(&queue->lock);
|
spin_lock_bh(&queue->lock);
|
||||||
phead = get_list_head(queue);
|
phead = get_list_head(queue);
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
while (1) {
|
|
||||||
if (rtw_end_of_queue_search(phead, plist) == true)
|
|
||||||
break;
|
|
||||||
|
|
||||||
|
while (phead != plist) {
|
||||||
pnetwork = container_of(plist, struct wlan_network, list);
|
pnetwork = container_of(plist, struct wlan_network, list);
|
||||||
|
|
||||||
if (is_same_network(&(pnetwork->network), target)) {
|
if (is_same_network(&(pnetwork->network), target))
|
||||||
target_find = 1;
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
if ((oldest == ((struct wlan_network *)0)) ||
|
if ((oldest == ((struct wlan_network *)0)) ||
|
||||||
time_after(oldest->last_scanned, pnetwork->last_scanned))
|
time_after(oldest->last_scanned, pnetwork->last_scanned))
|
||||||
oldest = pnetwork;
|
oldest = pnetwork;
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
}
|
}
|
||||||
/* If we didn't find a match, then get a new network slot to initialize
|
/* If we didn't find a match, then get a new network slot to initialize
|
||||||
* with this beacon's information */
|
* with this beacon's information */
|
||||||
if (!target_find) {
|
if (phead == plist) {
|
||||||
if (_rtw_queue_empty(&(pmlmepriv->free_bss_pool)) == true) {
|
if (list_empty(&(pmlmepriv->free_bss_pool.queue))) {
|
||||||
/* If there are no more slots, expire the oldest */
|
/* If there are no more slots, expire the oldest */
|
||||||
pnetwork = oldest;
|
pnetwork = oldest;
|
||||||
|
|
||||||
|
@ -898,11 +890,11 @@ static void free_scanqueue(struct mlme_priv *pmlmepriv)
|
||||||
spin_lock_bh(&free_queue->lock);
|
spin_lock_bh(&free_queue->lock);
|
||||||
|
|
||||||
phead = get_list_head(scan_queue);
|
phead = get_list_head(scan_queue);
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
while (plist != phead) {
|
while (plist != phead) {
|
||||||
ptemp = get_next(plist);
|
ptemp = plist->next;
|
||||||
rtw_list_delete(plist);
|
list_del_init(plist);
|
||||||
list_add_tail(plist, &free_queue->queue);
|
list_add_tail(plist, &free_queue->queue);
|
||||||
plist = ptemp;
|
plist = ptemp;
|
||||||
pmlmepriv->num_of_scanned--;
|
pmlmepriv->num_of_scanned--;
|
||||||
|
@ -910,7 +902,6 @@ static void free_scanqueue(struct mlme_priv *pmlmepriv)
|
||||||
|
|
||||||
spin_unlock_bh(&free_queue->lock);
|
spin_unlock_bh(&free_queue->lock);
|
||||||
spin_unlock_bh(&scan_queue->lock);
|
spin_unlock_bh(&scan_queue->lock);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1716,15 +1707,15 @@ int rtw_select_and_join_from_scanned_queue(struct mlme_priv *pmlmepriv)
|
||||||
spin_lock_bh(&pmlmepriv->scanned_queue.lock);
|
spin_lock_bh(&pmlmepriv->scanned_queue.lock);
|
||||||
phead = get_list_head(queue);
|
phead = get_list_head(queue);
|
||||||
adapter = (struct adapter *)pmlmepriv->nic_hdl;
|
adapter = (struct adapter *)pmlmepriv->nic_hdl;
|
||||||
pmlmepriv->pscanned = get_next(phead);
|
pmlmepriv->pscanned = phead->next;
|
||||||
while (!rtw_end_of_queue_search(phead, pmlmepriv->pscanned)) {
|
while (phead != pmlmepriv->pscanned) {
|
||||||
pnetwork = container_of(pmlmepriv->pscanned, struct wlan_network, list);
|
pnetwork = container_of(pmlmepriv->pscanned, struct wlan_network, list);
|
||||||
if (pnetwork == NULL) {
|
if (pnetwork == NULL) {
|
||||||
RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("%s return _FAIL:(pnetwork==NULL)\n", __func__));
|
RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("%s return _FAIL:(pnetwork==NULL)\n", __func__));
|
||||||
ret = _FAIL;
|
ret = _FAIL;
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
pmlmepriv->pscanned = get_next(pmlmepriv->pscanned);
|
pmlmepriv->pscanned = pmlmepriv->pscanned->next;
|
||||||
rtw_check_join_candidate(pmlmepriv, &candidate, pnetwork);
|
rtw_check_join_candidate(pmlmepriv, &candidate, pnetwork);
|
||||||
}
|
}
|
||||||
if (candidate == NULL) {
|
if (candidate == NULL) {
|
||||||
|
|
|
@ -811,8 +811,8 @@ unsigned int OnAuth(struct adapter *padapter, struct recv_frame *precv_frame)
|
||||||
pstat->auth_seq = 0;
|
pstat->auth_seq = 0;
|
||||||
} else {
|
} else {
|
||||||
spin_lock_bh(&pstapriv->asoc_list_lock);
|
spin_lock_bh(&pstapriv->asoc_list_lock);
|
||||||
if (!rtw_is_list_empty(&pstat->asoc_list)) {
|
if (!list_empty(&pstat->asoc_list)) {
|
||||||
rtw_list_delete(&pstat->asoc_list);
|
list_del_init(&pstat->asoc_list);
|
||||||
pstapriv->asoc_list_cnt--;
|
pstapriv->asoc_list_cnt--;
|
||||||
}
|
}
|
||||||
spin_unlock_bh(&pstapriv->asoc_list_lock);
|
spin_unlock_bh(&pstapriv->asoc_list_lock);
|
||||||
|
@ -823,7 +823,7 @@ unsigned int OnAuth(struct adapter *padapter, struct recv_frame *precv_frame)
|
||||||
}
|
}
|
||||||
|
|
||||||
spin_lock_bh(&pstapriv->auth_list_lock);
|
spin_lock_bh(&pstapriv->auth_list_lock);
|
||||||
if (rtw_is_list_empty(&pstat->auth_list)) {
|
if (list_empty(&pstat->auth_list)) {
|
||||||
list_add_tail(&pstat->auth_list, &pstapriv->auth_list);
|
list_add_tail(&pstat->auth_list, &pstapriv->auth_list);
|
||||||
pstapriv->auth_list_cnt++;
|
pstapriv->auth_list_cnt++;
|
||||||
}
|
}
|
||||||
|
@ -1395,14 +1395,14 @@ unsigned int OnAssocReq(struct adapter *padapter, struct recv_frame *precv_frame
|
||||||
pstat->state |= WIFI_FW_ASSOC_SUCCESS;
|
pstat->state |= WIFI_FW_ASSOC_SUCCESS;
|
||||||
|
|
||||||
spin_lock_bh(&pstapriv->auth_list_lock);
|
spin_lock_bh(&pstapriv->auth_list_lock);
|
||||||
if (!rtw_is_list_empty(&pstat->auth_list)) {
|
if (!list_empty(&pstat->auth_list)) {
|
||||||
rtw_list_delete(&pstat->auth_list);
|
list_del_init(&pstat->auth_list);
|
||||||
pstapriv->auth_list_cnt--;
|
pstapriv->auth_list_cnt--;
|
||||||
}
|
}
|
||||||
spin_unlock_bh(&pstapriv->auth_list_lock);
|
spin_unlock_bh(&pstapriv->auth_list_lock);
|
||||||
|
|
||||||
spin_lock_bh(&pstapriv->asoc_list_lock);
|
spin_lock_bh(&pstapriv->asoc_list_lock);
|
||||||
if (rtw_is_list_empty(&pstat->asoc_list)) {
|
if (list_empty(&pstat->asoc_list)) {
|
||||||
pstat->expire_to = pstapriv->expire_to;
|
pstat->expire_to = pstapriv->expire_to;
|
||||||
list_add_tail(&pstat->asoc_list, &pstapriv->asoc_list);
|
list_add_tail(&pstat->asoc_list, &pstapriv->asoc_list);
|
||||||
pstapriv->asoc_list_cnt++;
|
pstapriv->asoc_list_cnt++;
|
||||||
|
@ -1585,8 +1585,8 @@ unsigned int OnDeAuth(struct adapter *padapter, struct recv_frame *precv_frame)
|
||||||
u8 updated = 0;
|
u8 updated = 0;
|
||||||
|
|
||||||
spin_lock_bh(&pstapriv->asoc_list_lock);
|
spin_lock_bh(&pstapriv->asoc_list_lock);
|
||||||
if (!rtw_is_list_empty(&psta->asoc_list)) {
|
if (!list_empty(&psta->asoc_list)) {
|
||||||
rtw_list_delete(&psta->asoc_list);
|
list_del_init(&psta->asoc_list);
|
||||||
pstapriv->asoc_list_cnt--;
|
pstapriv->asoc_list_cnt--;
|
||||||
updated = ap_free_sta(padapter, psta, false, reason);
|
updated = ap_free_sta(padapter, psta, false, reason);
|
||||||
}
|
}
|
||||||
|
@ -1665,8 +1665,8 @@ unsigned int OnDisassoc(struct adapter *padapter, struct recv_frame *precv_frame
|
||||||
u8 updated = 0;
|
u8 updated = 0;
|
||||||
|
|
||||||
spin_lock_bh(&pstapriv->asoc_list_lock);
|
spin_lock_bh(&pstapriv->asoc_list_lock);
|
||||||
if (!rtw_is_list_empty(&psta->asoc_list)) {
|
if (!list_empty(&psta->asoc_list)) {
|
||||||
rtw_list_delete(&psta->asoc_list);
|
list_del_init(&psta->asoc_list);
|
||||||
pstapriv->asoc_list_cnt--;
|
pstapriv->asoc_list_cnt--;
|
||||||
updated = ap_free_sta(padapter, psta, false, reason);
|
updated = ap_free_sta(padapter, psta, false, reason);
|
||||||
}
|
}
|
||||||
|
@ -6188,19 +6188,16 @@ static void issue_action_BSSCoexistPacket(struct adapter *padapter)
|
||||||
spin_lock_bh(&pmlmepriv->scanned_queue.lock);
|
spin_lock_bh(&pmlmepriv->scanned_queue.lock);
|
||||||
|
|
||||||
phead = get_list_head(queue);
|
phead = get_list_head(queue);
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
while (1) {
|
while (phead != plist) {
|
||||||
int len;
|
int len;
|
||||||
u8 *p;
|
u8 *p;
|
||||||
struct wlan_bssid_ex *pbss_network;
|
struct wlan_bssid_ex *pbss_network;
|
||||||
|
|
||||||
if (rtw_end_of_queue_search(phead, plist))
|
|
||||||
break;
|
|
||||||
|
|
||||||
pnetwork = container_of(plist, struct wlan_network, list);
|
pnetwork = container_of(plist, struct wlan_network, list);
|
||||||
|
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
|
|
||||||
pbss_network = (struct wlan_bssid_ex *)&pnetwork->network;
|
pbss_network = (struct wlan_bssid_ex *)&pnetwork->network;
|
||||||
|
|
||||||
|
@ -8309,14 +8306,14 @@ u8 tx_beacon_hdl(struct adapter *padapter, unsigned char *pbuf)
|
||||||
spin_lock_bh(&psta_bmc->sleep_q.lock);
|
spin_lock_bh(&psta_bmc->sleep_q.lock);
|
||||||
|
|
||||||
xmitframe_phead = get_list_head(&psta_bmc->sleep_q);
|
xmitframe_phead = get_list_head(&psta_bmc->sleep_q);
|
||||||
xmitframe_plist = get_next(xmitframe_phead);
|
xmitframe_plist = xmitframe_phead->next;
|
||||||
|
|
||||||
while (!rtw_end_of_queue_search(xmitframe_phead, xmitframe_plist)) {
|
while (xmitframe_phead != xmitframe_plist) {
|
||||||
pxmitframe = container_of(xmitframe_plist, struct xmit_frame, list);
|
pxmitframe = container_of(xmitframe_plist, struct xmit_frame, list);
|
||||||
|
|
||||||
xmitframe_plist = get_next(xmitframe_plist);
|
xmitframe_plist = xmitframe_plist->next;
|
||||||
|
|
||||||
rtw_list_delete(&pxmitframe->list);
|
list_del_init(&pxmitframe->list);
|
||||||
|
|
||||||
psta_bmc->sleepq_len--;
|
psta_bmc->sleepq_len--;
|
||||||
if (psta_bmc->sleepq_len > 0)
|
if (psta_bmc->sleepq_len > 0)
|
||||||
|
|
|
@ -57,13 +57,13 @@ static u32 go_add_group_info_attr(struct wifidirect_info *pwdinfo, u8 *pbuf)
|
||||||
|
|
||||||
spin_lock_bh(&pstapriv->asoc_list_lock);
|
spin_lock_bh(&pstapriv->asoc_list_lock);
|
||||||
phead = &pstapriv->asoc_list;
|
phead = &pstapriv->asoc_list;
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
/* look up sta asoc_queue */
|
/* look up sta asoc_queue */
|
||||||
while ((rtw_end_of_queue_search(phead, plist)) == false) {
|
while (phead != plist) {
|
||||||
psta = container_of(plist, struct sta_info, asoc_list);
|
psta = container_of(plist, struct sta_info, asoc_list);
|
||||||
|
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
|
|
||||||
if (psta->is_p2p_device) {
|
if (psta->is_p2p_device) {
|
||||||
tmplen = 0;
|
tmplen = 0;
|
||||||
|
@ -961,13 +961,13 @@ u32 process_p2p_devdisc_req(struct wifidirect_info *pwdinfo, u8 *pframe, uint le
|
||||||
|
|
||||||
spin_lock_bh(&pstapriv->asoc_list_lock);
|
spin_lock_bh(&pstapriv->asoc_list_lock);
|
||||||
phead = &pstapriv->asoc_list;
|
phead = &pstapriv->asoc_list;
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
/* look up sta asoc_queue */
|
/* look up sta asoc_queue */
|
||||||
while ((rtw_end_of_queue_search(phead, plist)) == false) {
|
while (phead != plist) {
|
||||||
psta = container_of(plist, struct sta_info, asoc_list);
|
psta = container_of(plist, struct sta_info, asoc_list);
|
||||||
|
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
|
|
||||||
if (psta->is_p2p_device && (psta->dev_cap&P2P_DEVCAP_CLIENT_DISCOVERABILITY) &&
|
if (psta->is_p2p_device && (psta->dev_cap&P2P_DEVCAP_CLIENT_DISCOVERABILITY) &&
|
||||||
!memcmp(psta->dev_addr, dev_addr, ETH_ALEN)) {
|
!memcmp(psta->dev_addr, dev_addr, ETH_ALEN)) {
|
||||||
|
|
|
@ -142,22 +142,22 @@ void _rtw_free_recv_priv (struct recv_priv *precvpriv)
|
||||||
|
|
||||||
struct recv_frame *_rtw_alloc_recvframe (struct __queue *pfree_recv_queue)
|
struct recv_frame *_rtw_alloc_recvframe (struct __queue *pfree_recv_queue)
|
||||||
{
|
{
|
||||||
struct recv_frame *precvframe;
|
struct recv_frame *hdr;
|
||||||
struct list_head *plist, *phead;
|
struct list_head *plist, *phead;
|
||||||
struct adapter *padapter;
|
struct adapter *padapter;
|
||||||
struct recv_priv *precvpriv;
|
struct recv_priv *precvpriv;
|
||||||
|
|
||||||
if (_rtw_queue_empty(pfree_recv_queue)) {
|
if (list_empty(&pfree_recv_queue->queue)) {
|
||||||
precvframe = NULL;
|
hdr = NULL;
|
||||||
} else {
|
} else {
|
||||||
phead = get_list_head(pfree_recv_queue);
|
phead = get_list_head(pfree_recv_queue);
|
||||||
|
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
precvframe = container_of(plist, struct recv_frame, list);
|
hdr = container_of(plist, struct recv_frame, list);
|
||||||
|
|
||||||
rtw_list_delete(&precvframe->list);
|
list_del_init(&hdr->list);
|
||||||
padapter = precvframe->adapter;
|
padapter = hdr->adapter;
|
||||||
if (padapter != NULL) {
|
if (padapter != NULL) {
|
||||||
precvpriv = &padapter->recvpriv;
|
precvpriv = &padapter->recvpriv;
|
||||||
if (pfree_recv_queue == &precvpriv->free_recv_queue)
|
if (pfree_recv_queue == &precvpriv->free_recv_queue)
|
||||||
|
@ -165,7 +165,7 @@ struct recv_frame *_rtw_alloc_recvframe (struct __queue *pfree_recv_queue)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return precvframe;
|
return (struct recv_frame *)hdr;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct recv_frame *rtw_alloc_recvframe (struct __queue *pfree_recv_queue)
|
struct recv_frame *rtw_alloc_recvframe (struct __queue *pfree_recv_queue)
|
||||||
|
@ -205,7 +205,7 @@ int rtw_free_recvframe(struct recv_frame *precvframe, struct __queue *pfree_recv
|
||||||
|
|
||||||
spin_lock_bh(&pfree_recv_queue->lock);
|
spin_lock_bh(&pfree_recv_queue->lock);
|
||||||
|
|
||||||
rtw_list_delete(&(precvframe->list));
|
list_del_init(&(precvframe->list));
|
||||||
|
|
||||||
precvframe->len = 0;
|
precvframe->len = 0;
|
||||||
|
|
||||||
|
@ -226,7 +226,7 @@ int _rtw_enqueue_recvframe(struct recv_frame *precvframe, struct __queue *queue)
|
||||||
struct adapter *padapter = precvframe->adapter;
|
struct adapter *padapter = precvframe->adapter;
|
||||||
struct recv_priv *precvpriv = &padapter->recvpriv;
|
struct recv_priv *precvpriv = &padapter->recvpriv;
|
||||||
|
|
||||||
rtw_list_delete(&(precvframe->list));
|
list_del_init(&(precvframe->list));
|
||||||
list_add_tail(&(precvframe->list), get_list_head(queue));
|
list_add_tail(&(precvframe->list), get_list_head(queue));
|
||||||
|
|
||||||
if (padapter != NULL) {
|
if (padapter != NULL) {
|
||||||
|
@ -258,20 +258,20 @@ using spinlock to protect
|
||||||
|
|
||||||
void rtw_free_recvframe_queue(struct __queue *pframequeue, struct __queue *pfree_recv_queue)
|
void rtw_free_recvframe_queue(struct __queue *pframequeue, struct __queue *pfree_recv_queue)
|
||||||
{
|
{
|
||||||
struct recv_frame *precvframe;
|
struct recv_frame *hdr;
|
||||||
struct list_head *plist, *phead;
|
struct list_head *plist, *phead;
|
||||||
|
|
||||||
spin_lock(&pframequeue->lock);
|
spin_lock(&pframequeue->lock);
|
||||||
|
|
||||||
phead = get_list_head(pframequeue);
|
phead = get_list_head(pframequeue);
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
while (rtw_end_of_queue_search(phead, plist) == false) {
|
while (phead != plist) {
|
||||||
precvframe = container_of(plist, struct recv_frame, list);
|
hdr = container_of(plist, struct recv_frame, list);
|
||||||
|
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
|
|
||||||
rtw_free_recvframe(precvframe, pfree_recv_queue);
|
rtw_free_recvframe((struct recv_frame *)hdr, pfree_recv_queue);
|
||||||
}
|
}
|
||||||
|
|
||||||
spin_unlock(&pframequeue->lock);
|
spin_unlock(&pframequeue->lock);
|
||||||
|
@ -295,7 +295,7 @@ int rtw_enqueue_recvbuf_to_head(struct recv_buf *precvbuf, struct __queue *queue
|
||||||
{
|
{
|
||||||
spin_lock_bh(&queue->lock);
|
spin_lock_bh(&queue->lock);
|
||||||
|
|
||||||
rtw_list_delete(&precvbuf->list);
|
list_del_init(&precvbuf->list);
|
||||||
list_add(&precvbuf->list, get_list_head(queue));
|
list_add(&precvbuf->list, get_list_head(queue));
|
||||||
|
|
||||||
spin_unlock_bh(&queue->lock);
|
spin_unlock_bh(&queue->lock);
|
||||||
|
@ -309,7 +309,7 @@ int rtw_enqueue_recvbuf(struct recv_buf *precvbuf, struct __queue *queue)
|
||||||
|
|
||||||
spin_lock_irqsave(&queue->lock, flags);
|
spin_lock_irqsave(&queue->lock, flags);
|
||||||
|
|
||||||
rtw_list_delete(&precvbuf->list);
|
list_del_init(&precvbuf->list);
|
||||||
|
|
||||||
list_add_tail(&precvbuf->list, get_list_head(queue));
|
list_add_tail(&precvbuf->list, get_list_head(queue));
|
||||||
spin_unlock_irqrestore(&queue->lock, flags);
|
spin_unlock_irqrestore(&queue->lock, flags);
|
||||||
|
@ -324,16 +324,16 @@ struct recv_buf *rtw_dequeue_recvbuf (struct __queue *queue)
|
||||||
|
|
||||||
spin_lock_irqsave(&queue->lock, flags);
|
spin_lock_irqsave(&queue->lock, flags);
|
||||||
|
|
||||||
if (_rtw_queue_empty(queue)) {
|
if (list_empty(&queue->queue)) {
|
||||||
precvbuf = NULL;
|
precvbuf = NULL;
|
||||||
} else {
|
} else {
|
||||||
phead = get_list_head(queue);
|
phead = get_list_head(queue);
|
||||||
|
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
precvbuf = container_of(plist, struct recv_buf, list);
|
precvbuf = container_of(plist, struct recv_buf, list);
|
||||||
|
|
||||||
rtw_list_delete(&precvbuf->list);
|
list_del_init(&precvbuf->list);
|
||||||
}
|
}
|
||||||
|
|
||||||
spin_unlock_irqrestore(&queue->lock, flags);
|
spin_unlock_irqrestore(&queue->lock, flags);
|
||||||
|
@ -1071,14 +1071,14 @@ static int validate_recv_ctrl_frame(struct adapter *padapter,
|
||||||
spin_lock_bh(&pxmitpriv->lock);
|
spin_lock_bh(&pxmitpriv->lock);
|
||||||
|
|
||||||
xmitframe_phead = get_list_head(&psta->sleep_q);
|
xmitframe_phead = get_list_head(&psta->sleep_q);
|
||||||
xmitframe_plist = get_next(xmitframe_phead);
|
xmitframe_plist = xmitframe_phead->next;
|
||||||
|
|
||||||
if ((rtw_end_of_queue_search(xmitframe_phead, xmitframe_plist)) == false) {
|
if (xmitframe_phead != xmitframe_plist) {
|
||||||
pxmitframe = container_of(xmitframe_plist, struct xmit_frame, list);
|
pxmitframe = container_of(xmitframe_plist, struct xmit_frame, list);
|
||||||
|
|
||||||
xmitframe_plist = get_next(xmitframe_plist);
|
xmitframe_plist = xmitframe_plist->next;
|
||||||
|
|
||||||
rtw_list_delete(&pxmitframe->list);
|
list_del_init(&pxmitframe->list);
|
||||||
|
|
||||||
psta->sleepq_len--;
|
psta->sleepq_len--;
|
||||||
|
|
||||||
|
@ -1475,7 +1475,7 @@ static struct recv_frame *recvframe_defrag(struct adapter *adapter, struct __que
|
||||||
plist = phead->next;
|
plist = phead->next;
|
||||||
prframe = container_of(plist, struct recv_frame, list);
|
prframe = container_of(plist, struct recv_frame, list);
|
||||||
prframe = (struct recv_frame *)pfhdr;
|
prframe = (struct recv_frame *)pfhdr;
|
||||||
rtw_list_delete(&(prframe->list));
|
list_del_init(&(prframe->list));
|
||||||
|
|
||||||
if (curfragnum != pfhdr->attrib.frag_num) {
|
if (curfragnum != pfhdr->attrib.frag_num) {
|
||||||
/* the first fragment number must be 0 */
|
/* the first fragment number must be 0 */
|
||||||
|
@ -1585,7 +1585,7 @@ struct recv_frame *recvframe_chk_defrag(struct adapter *padapter, struct recv_fr
|
||||||
if (pdefrag_q != NULL) {
|
if (pdefrag_q != NULL) {
|
||||||
if (fragnum == 0) {
|
if (fragnum == 0) {
|
||||||
/* the first fragment */
|
/* the first fragment */
|
||||||
if (_rtw_queue_empty(pdefrag_q) == false) {
|
if (!list_empty(&pdefrag_q->queue)) {
|
||||||
/* free current defrag_q */
|
/* free current defrag_q */
|
||||||
rtw_free_recvframe_queue(pdefrag_q, pfree_recv_queue);
|
rtw_free_recvframe_queue(pdefrag_q, pfree_recv_queue);
|
||||||
}
|
}
|
||||||
|
@ -1792,25 +1792,25 @@ int enqueue_reorder_recvframe(struct recv_reorder_ctrl *preorder_ctrl, struct re
|
||||||
struct rx_pkt_attrib *pattrib = &prframe->attrib;
|
struct rx_pkt_attrib *pattrib = &prframe->attrib;
|
||||||
struct __queue *ppending_recvframe_queue = &preorder_ctrl->pending_recvframe_queue;
|
struct __queue *ppending_recvframe_queue = &preorder_ctrl->pending_recvframe_queue;
|
||||||
struct list_head *phead, *plist;
|
struct list_head *phead, *plist;
|
||||||
struct recv_frame *pnextrframe;
|
struct recv_frame *hdr;
|
||||||
struct rx_pkt_attrib *pnextattrib;
|
struct rx_pkt_attrib *pnextattrib;
|
||||||
|
|
||||||
phead = get_list_head(ppending_recvframe_queue);
|
phead = get_list_head(ppending_recvframe_queue);
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
while (rtw_end_of_queue_search(phead, plist) == false) {
|
while (phead != plist) {
|
||||||
pnextrframe = container_of(plist, struct recv_frame, list);
|
hdr = container_of(plist, struct recv_frame, list);
|
||||||
pnextattrib = &pnextrframe->attrib;
|
pnextattrib = &hdr->attrib;
|
||||||
|
|
||||||
if (SN_LESS(pnextattrib->seq_num, pattrib->seq_num))
|
if (SN_LESS(pnextattrib->seq_num, pattrib->seq_num))
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
else if (SN_EQUAL(pnextattrib->seq_num, pattrib->seq_num))
|
else if (SN_EQUAL(pnextattrib->seq_num, pattrib->seq_num))
|
||||||
return false;
|
return false;
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
rtw_list_delete(&(prframe->list));
|
list_del_init(&(prframe->list));
|
||||||
|
|
||||||
list_add_tail(&(prframe->list), plist);
|
list_add_tail(&(prframe->list), plist);
|
||||||
return true;
|
return true;
|
||||||
|
@ -1826,11 +1826,11 @@ static int recv_indicatepkts_in_order(struct adapter *padapter, struct recv_reor
|
||||||
struct __queue *ppending_recvframe_queue = &preorder_ctrl->pending_recvframe_queue;
|
struct __queue *ppending_recvframe_queue = &preorder_ctrl->pending_recvframe_queue;
|
||||||
|
|
||||||
phead = get_list_head(ppending_recvframe_queue);
|
phead = get_list_head(ppending_recvframe_queue);
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
/* Handling some condition for forced indicate case. */
|
/* Handling some condition for forced indicate case. */
|
||||||
if (bforced) {
|
if (bforced) {
|
||||||
if (rtw_is_list_empty(phead))
|
if (list_empty(phead))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
prframe = container_of(plist, struct recv_frame, list);
|
prframe = container_of(plist, struct recv_frame, list);
|
||||||
|
@ -1840,7 +1840,7 @@ static int recv_indicatepkts_in_order(struct adapter *padapter, struct recv_reor
|
||||||
|
|
||||||
/* Prepare indication list and indication. */
|
/* Prepare indication list and indication. */
|
||||||
/* Check if there is any packet need indicate. */
|
/* Check if there is any packet need indicate. */
|
||||||
while (!rtw_is_list_empty(phead)) {
|
while (!list_empty(phead)) {
|
||||||
prframe = container_of(plist, struct recv_frame, list);
|
prframe = container_of(plist, struct recv_frame, list);
|
||||||
pattrib = &prframe->attrib;
|
pattrib = &prframe->attrib;
|
||||||
|
|
||||||
|
@ -1848,8 +1848,8 @@ static int recv_indicatepkts_in_order(struct adapter *padapter, struct recv_reor
|
||||||
RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_,
|
RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_,
|
||||||
("recv_indicatepkts_in_order: indicate=%d seq=%d amsdu=%d\n",
|
("recv_indicatepkts_in_order: indicate=%d seq=%d amsdu=%d\n",
|
||||||
preorder_ctrl->indicate_seq, pattrib->seq_num, pattrib->amsdu));
|
preorder_ctrl->indicate_seq, pattrib->seq_num, pattrib->amsdu));
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
rtw_list_delete(&(prframe->list));
|
list_del_init(&(prframe->list));
|
||||||
|
|
||||||
if (SN_EQUAL(preorder_ctrl->indicate_seq, pattrib->seq_num))
|
if (SN_EQUAL(preorder_ctrl->indicate_seq, pattrib->seq_num))
|
||||||
preorder_ctrl->indicate_seq = (preorder_ctrl->indicate_seq + 1) & 0xFFF;
|
preorder_ctrl->indicate_seq = (preorder_ctrl->indicate_seq + 1) & 0xFFF;
|
||||||
|
|
|
@ -187,17 +187,14 @@ void rtw_mfree_all_stainfo(struct sta_priv *pstapriv)
|
||||||
spin_lock_bh(&pstapriv->sta_hash_lock);
|
spin_lock_bh(&pstapriv->sta_hash_lock);
|
||||||
|
|
||||||
phead = get_list_head(&pstapriv->free_sta_queue);
|
phead = get_list_head(&pstapriv->free_sta_queue);
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
while ((rtw_end_of_queue_search(phead, plist)) == false) {
|
while (phead != plist) {
|
||||||
psta = container_of(plist, struct sta_info , list);
|
psta = container_of(plist, struct sta_info , list);
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
|
|
||||||
rtw_mfree_stainfo(psta);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
spin_unlock_bh(&pstapriv->sta_hash_lock);
|
spin_unlock_bh(&pstapriv->sta_hash_lock);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rtw_mfree_sta_priv_lock(struct sta_priv *pstapriv)
|
static void rtw_mfree_sta_priv_lock(struct sta_priv *pstapriv)
|
||||||
|
@ -233,12 +230,12 @@ u32 _rtw_free_sta_priv(struct sta_priv *pstapriv)
|
||||||
spin_lock_bh(&pstapriv->sta_hash_lock);
|
spin_lock_bh(&pstapriv->sta_hash_lock);
|
||||||
for (index = 0; index < NUM_STA; index++) {
|
for (index = 0; index < NUM_STA; index++) {
|
||||||
phead = &(pstapriv->sta_hash[index]);
|
phead = &(pstapriv->sta_hash[index]);
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
while ((rtw_end_of_queue_search(phead, plist)) == false) {
|
while (phead != plist) {
|
||||||
int i;
|
int i;
|
||||||
psta = container_of(plist, struct sta_info , hash_list);
|
psta = container_of(plist, struct sta_info , hash_list);
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
|
|
||||||
for (i = 0; i < 16; i++) {
|
for (i = 0; i < 16; i++) {
|
||||||
preorder_ctrl = &psta->recvreorder_ctrl[i];
|
preorder_ctrl = &psta->recvreorder_ctrl[i];
|
||||||
|
@ -272,12 +269,12 @@ struct sta_info *rtw_alloc_stainfo(struct sta_priv *pstapriv, u8 *hwaddr)
|
||||||
|
|
||||||
spin_lock_bh(&pfree_sta_queue->lock);
|
spin_lock_bh(&pfree_sta_queue->lock);
|
||||||
|
|
||||||
if (_rtw_queue_empty(pfree_sta_queue) == true) {
|
if (list_empty(&pfree_sta_queue->queue)) {
|
||||||
spin_unlock_bh(&pfree_sta_queue->lock);
|
spin_unlock_bh(&pfree_sta_queue->lock);
|
||||||
psta = NULL;
|
psta = NULL;
|
||||||
} else {
|
} else {
|
||||||
psta = container_of(get_next(&pfree_sta_queue->queue), struct sta_info, list);
|
psta = container_of((&pfree_sta_queue->queue)->next, struct sta_info, list);
|
||||||
rtw_list_delete(&(psta->list));
|
list_del_init(&(psta->list));
|
||||||
spin_unlock_bh(&pfree_sta_queue->lock);
|
spin_unlock_bh(&pfree_sta_queue->lock);
|
||||||
_rtw_init_stainfo(psta);
|
_rtw_init_stainfo(psta);
|
||||||
memcpy(psta->hwaddr, hwaddr, ETH_ALEN);
|
memcpy(psta->hwaddr, hwaddr, ETH_ALEN);
|
||||||
|
@ -366,23 +363,23 @@ u32 rtw_free_stainfo(struct adapter *padapter , struct sta_info *psta)
|
||||||
|
|
||||||
rtw_free_xmitframe_queue(pxmitpriv, &pstaxmitpriv->vo_q.sta_pending);
|
rtw_free_xmitframe_queue(pxmitpriv, &pstaxmitpriv->vo_q.sta_pending);
|
||||||
|
|
||||||
rtw_list_delete(&(pstaxmitpriv->vo_q.tx_pending));
|
list_del_init(&(pstaxmitpriv->vo_q.tx_pending));
|
||||||
|
|
||||||
rtw_free_xmitframe_queue(pxmitpriv, &pstaxmitpriv->vi_q.sta_pending);
|
rtw_free_xmitframe_queue(pxmitpriv, &pstaxmitpriv->vi_q.sta_pending);
|
||||||
|
|
||||||
rtw_list_delete(&(pstaxmitpriv->vi_q.tx_pending));
|
list_del_init(&(pstaxmitpriv->vi_q.tx_pending));
|
||||||
|
|
||||||
rtw_free_xmitframe_queue(pxmitpriv, &pstaxmitpriv->bk_q.sta_pending);
|
rtw_free_xmitframe_queue(pxmitpriv, &pstaxmitpriv->bk_q.sta_pending);
|
||||||
|
|
||||||
rtw_list_delete(&(pstaxmitpriv->bk_q.tx_pending));
|
list_del_init(&(pstaxmitpriv->bk_q.tx_pending));
|
||||||
|
|
||||||
rtw_free_xmitframe_queue(pxmitpriv, &pstaxmitpriv->be_q.sta_pending);
|
rtw_free_xmitframe_queue(pxmitpriv, &pstaxmitpriv->be_q.sta_pending);
|
||||||
|
|
||||||
rtw_list_delete(&(pstaxmitpriv->be_q.tx_pending));
|
list_del_init(&(pstaxmitpriv->be_q.tx_pending));
|
||||||
|
|
||||||
spin_unlock_bh(&pxmitpriv->lock);
|
spin_unlock_bh(&pxmitpriv->lock);
|
||||||
|
|
||||||
rtw_list_delete(&psta->hash_list);
|
list_del_init(&psta->hash_list);
|
||||||
RT_TRACE(_module_rtl871x_sta_mgt_c_, _drv_err_, ("\n free number_%d stainfo with hwaddr=0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x\n", pstapriv->asoc_sta_count , psta->hwaddr[0], psta->hwaddr[1], psta->hwaddr[2], psta->hwaddr[3], psta->hwaddr[4], psta->hwaddr[5]));
|
RT_TRACE(_module_rtl871x_sta_mgt_c_, _drv_err_, ("\n free number_%d stainfo with hwaddr=0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x\n", pstapriv->asoc_sta_count , psta->hwaddr[0], psta->hwaddr[1], psta->hwaddr[2], psta->hwaddr[3], psta->hwaddr[4], psta->hwaddr[5]));
|
||||||
pstapriv->asoc_sta_count--;
|
pstapriv->asoc_sta_count--;
|
||||||
|
|
||||||
|
@ -408,14 +405,14 @@ u32 rtw_free_stainfo(struct adapter *padapter , struct sta_info *psta)
|
||||||
spin_lock_bh(&ppending_recvframe_queue->lock);
|
spin_lock_bh(&ppending_recvframe_queue->lock);
|
||||||
|
|
||||||
phead = get_list_head(ppending_recvframe_queue);
|
phead = get_list_head(ppending_recvframe_queue);
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
while (!rtw_is_list_empty(phead)) {
|
while (!list_empty(phead)) {
|
||||||
prframe = container_of(plist, struct recv_frame, list);
|
prframe = container_of(plist, struct recv_frame, list);
|
||||||
|
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
|
|
||||||
rtw_list_delete(&(prframe->list));
|
list_del_init(&(prframe->list));
|
||||||
|
|
||||||
rtw_free_recvframe(prframe, pfree_recv_queue);
|
rtw_free_recvframe(prframe, pfree_recv_queue);
|
||||||
}
|
}
|
||||||
|
@ -429,8 +426,8 @@ u32 rtw_free_stainfo(struct adapter *padapter , struct sta_info *psta)
|
||||||
#ifdef CONFIG_88EU_AP_MODE
|
#ifdef CONFIG_88EU_AP_MODE
|
||||||
|
|
||||||
spin_lock_bh(&pstapriv->auth_list_lock);
|
spin_lock_bh(&pstapriv->auth_list_lock);
|
||||||
if (!rtw_is_list_empty(&psta->auth_list)) {
|
if (!list_empty(&psta->auth_list)) {
|
||||||
rtw_list_delete(&psta->auth_list);
|
list_del_init(&psta->auth_list);
|
||||||
pstapriv->auth_list_cnt--;
|
pstapriv->auth_list_cnt--;
|
||||||
}
|
}
|
||||||
spin_unlock_bh(&pstapriv->auth_list_lock);
|
spin_unlock_bh(&pstapriv->auth_list_lock);
|
||||||
|
@ -484,12 +481,12 @@ void rtw_free_all_stainfo(struct adapter *padapter)
|
||||||
|
|
||||||
for (index = 0; index < NUM_STA; index++) {
|
for (index = 0; index < NUM_STA; index++) {
|
||||||
phead = &(pstapriv->sta_hash[index]);
|
phead = &(pstapriv->sta_hash[index]);
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
while ((!rtw_end_of_queue_search(phead, plist))) {
|
while (phead != plist) {
|
||||||
psta = container_of(plist, struct sta_info , hash_list);
|
psta = container_of(plist, struct sta_info , hash_list);
|
||||||
|
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
|
|
||||||
if (pbcmc_stainfo != psta)
|
if (pbcmc_stainfo != psta)
|
||||||
rtw_free_stainfo(padapter , psta);
|
rtw_free_stainfo(padapter , psta);
|
||||||
|
@ -520,9 +517,9 @@ struct sta_info *rtw_get_stainfo(struct sta_priv *pstapriv, u8 *hwaddr)
|
||||||
spin_lock_bh(&pstapriv->sta_hash_lock);
|
spin_lock_bh(&pstapriv->sta_hash_lock);
|
||||||
|
|
||||||
phead = &(pstapriv->sta_hash[index]);
|
phead = &(pstapriv->sta_hash[index]);
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
while ((!rtw_end_of_queue_search(phead, plist))) {
|
while (phead != plist) {
|
||||||
psta = container_of(plist, struct sta_info, hash_list);
|
psta = container_of(plist, struct sta_info, hash_list);
|
||||||
|
|
||||||
if ((!memcmp(psta->hwaddr, addr, ETH_ALEN))) {
|
if ((!memcmp(psta->hwaddr, addr, ETH_ALEN))) {
|
||||||
|
@ -530,7 +527,7 @@ struct sta_info *rtw_get_stainfo(struct sta_priv *pstapriv, u8 *hwaddr)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
psta = NULL;
|
psta = NULL;
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
spin_unlock_bh(&pstapriv->sta_hash_lock);
|
spin_unlock_bh(&pstapriv->sta_hash_lock);
|
||||||
|
@ -585,10 +582,10 @@ u8 rtw_access_ctrl(struct adapter *padapter, u8 *mac_addr)
|
||||||
|
|
||||||
spin_lock_bh(&pacl_node_q->lock);
|
spin_lock_bh(&pacl_node_q->lock);
|
||||||
phead = get_list_head(pacl_node_q);
|
phead = get_list_head(pacl_node_q);
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
while ((!rtw_end_of_queue_search(phead, plist))) {
|
while (phead != plist) {
|
||||||
paclnode = container_of(plist, struct rtw_wlan_acl_node, list);
|
paclnode = container_of(plist, struct rtw_wlan_acl_node, list);
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
|
|
||||||
if (!memcmp(paclnode->addr, mac_addr, ETH_ALEN)) {
|
if (!memcmp(paclnode->addr, mac_addr, ETH_ALEN)) {
|
||||||
if (paclnode->valid) {
|
if (paclnode->valid) {
|
||||||
|
|
102
core/rtw_xmit.c
102
core/rtw_xmit.c
|
@ -923,10 +923,10 @@ s32 rtw_txframes_pending(struct adapter *padapter)
|
||||||
{
|
{
|
||||||
struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
|
struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
|
||||||
|
|
||||||
return ((_rtw_queue_empty(&pxmitpriv->be_pending) == false) ||
|
return (!list_empty(&pxmitpriv->be_pending.queue) ||
|
||||||
(_rtw_queue_empty(&pxmitpriv->bk_pending) == false) ||
|
!list_empty(&pxmitpriv->bk_pending.queue) ||
|
||||||
(_rtw_queue_empty(&pxmitpriv->vi_pending) == false) ||
|
!list_empty(&pxmitpriv->vi_pending.queue) ||
|
||||||
(_rtw_queue_empty(&pxmitpriv->vo_pending) == false));
|
!list_empty(&pxmitpriv->vo_pending.queue));
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 rtw_txframes_sta_ac_pending(struct adapter *padapter, struct pkt_attrib *pattrib)
|
s32 rtw_txframes_sta_ac_pending(struct adapter *padapter, struct pkt_attrib *pattrib)
|
||||||
|
@ -1238,16 +1238,16 @@ struct xmit_buf *rtw_alloc_xmitbuf_ext(struct xmit_priv *pxmitpriv)
|
||||||
|
|
||||||
spin_lock_irqsave(&pfree_queue->lock, flags);
|
spin_lock_irqsave(&pfree_queue->lock, flags);
|
||||||
|
|
||||||
if (_rtw_queue_empty(pfree_queue) == true) {
|
if (list_empty(&pfree_queue->queue)) {
|
||||||
pxmitbuf = NULL;
|
pxmitbuf = NULL;
|
||||||
} else {
|
} else {
|
||||||
phead = get_list_head(pfree_queue);
|
phead = get_list_head(pfree_queue);
|
||||||
|
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
pxmitbuf = container_of(plist, struct xmit_buf, list);
|
pxmitbuf = container_of(plist, struct xmit_buf, list);
|
||||||
|
|
||||||
rtw_list_delete(&(pxmitbuf->list));
|
list_del_init(&(pxmitbuf->list));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pxmitbuf != NULL) {
|
if (pxmitbuf != NULL) {
|
||||||
|
@ -1277,7 +1277,7 @@ s32 rtw_free_xmitbuf_ext(struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf)
|
||||||
|
|
||||||
spin_lock_irqsave(&pfree_queue->lock, flags);
|
spin_lock_irqsave(&pfree_queue->lock, flags);
|
||||||
|
|
||||||
rtw_list_delete(&pxmitbuf->list);
|
list_del_init(&pxmitbuf->list);
|
||||||
|
|
||||||
list_add_tail(&(pxmitbuf->list), get_list_head(pfree_queue));
|
list_add_tail(&(pxmitbuf->list), get_list_head(pfree_queue));
|
||||||
pxmitpriv->free_xmit_extbuf_cnt++;
|
pxmitpriv->free_xmit_extbuf_cnt++;
|
||||||
|
@ -1298,16 +1298,16 @@ struct xmit_buf *rtw_alloc_xmitbuf(struct xmit_priv *pxmitpriv)
|
||||||
|
|
||||||
spin_lock_irqsave(&pfree_xmitbuf_queue->lock, flags);
|
spin_lock_irqsave(&pfree_xmitbuf_queue->lock, flags);
|
||||||
|
|
||||||
if (_rtw_queue_empty(pfree_xmitbuf_queue) == true) {
|
if (list_empty(&pfree_xmitbuf_queue->queue)) {
|
||||||
pxmitbuf = NULL;
|
pxmitbuf = NULL;
|
||||||
} else {
|
} else {
|
||||||
phead = get_list_head(pfree_xmitbuf_queue);
|
phead = get_list_head(pfree_xmitbuf_queue);
|
||||||
|
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
pxmitbuf = container_of(plist, struct xmit_buf, list);
|
pxmitbuf = container_of(plist, struct xmit_buf, list);
|
||||||
|
|
||||||
rtw_list_delete(&(pxmitbuf->list));
|
list_del_init(&(pxmitbuf->list));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pxmitbuf != NULL) {
|
if (pxmitbuf != NULL) {
|
||||||
|
@ -1341,7 +1341,7 @@ s32 rtw_free_xmitbuf(struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf)
|
||||||
} else {
|
} else {
|
||||||
spin_lock_irqsave(&pfree_xmitbuf_queue->lock, flags);
|
spin_lock_irqsave(&pfree_xmitbuf_queue->lock, flags);
|
||||||
|
|
||||||
rtw_list_delete(&pxmitbuf->list);
|
list_del_init(&pxmitbuf->list);
|
||||||
|
|
||||||
list_add_tail(&(pxmitbuf->list), get_list_head(pfree_xmitbuf_queue));
|
list_add_tail(&(pxmitbuf->list), get_list_head(pfree_xmitbuf_queue));
|
||||||
|
|
||||||
|
@ -1378,17 +1378,17 @@ struct xmit_frame *rtw_alloc_xmitframe(struct xmit_priv *pxmitpriv)/* _queue *pf
|
||||||
|
|
||||||
spin_lock_bh(&pfree_xmit_queue->lock);
|
spin_lock_bh(&pfree_xmit_queue->lock);
|
||||||
|
|
||||||
if (_rtw_queue_empty(pfree_xmit_queue) == true) {
|
if (list_empty(&pfree_xmit_queue->queue)) {
|
||||||
RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_, ("rtw_alloc_xmitframe:%d\n", pxmitpriv->free_xmitframe_cnt));
|
RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_, ("rtw_alloc_xmitframe:%d\n", pxmitpriv->free_xmitframe_cnt));
|
||||||
pxframe = NULL;
|
pxframe = NULL;
|
||||||
} else {
|
} else {
|
||||||
phead = get_list_head(pfree_xmit_queue);
|
phead = get_list_head(pfree_xmit_queue);
|
||||||
|
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
pxframe = container_of(plist, struct xmit_frame, list);
|
pxframe = container_of(plist, struct xmit_frame, list);
|
||||||
|
|
||||||
rtw_list_delete(&(pxframe->list));
|
list_del_init(&(pxframe->list));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pxframe != NULL) { /* default value setting */
|
if (pxframe != NULL) { /* default value setting */
|
||||||
|
@ -1429,7 +1429,7 @@ s32 rtw_free_xmitframe(struct xmit_priv *pxmitpriv, struct xmit_frame *pxmitfram
|
||||||
|
|
||||||
spin_lock_bh(&pfree_xmit_queue->lock);
|
spin_lock_bh(&pfree_xmit_queue->lock);
|
||||||
|
|
||||||
rtw_list_delete(&pxmitframe->list);
|
list_del_init(&pxmitframe->list);
|
||||||
|
|
||||||
if (pxmitframe->pkt) {
|
if (pxmitframe->pkt) {
|
||||||
pndis_pkt = pxmitframe->pkt;
|
pndis_pkt = pxmitframe->pkt;
|
||||||
|
@ -1459,12 +1459,12 @@ void rtw_free_xmitframe_queue(struct xmit_priv *pxmitpriv, struct __queue *pfram
|
||||||
spin_lock_bh(&pframequeue->lock);
|
spin_lock_bh(&pframequeue->lock);
|
||||||
|
|
||||||
phead = get_list_head(pframequeue);
|
phead = get_list_head(pframequeue);
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
while (!rtw_end_of_queue_search(phead, plist)) {
|
while (phead != plist) {
|
||||||
pxmitframe = container_of(plist, struct xmit_frame, list);
|
pxmitframe = container_of(plist, struct xmit_frame, list);
|
||||||
|
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
|
|
||||||
rtw_free_xmitframe(pxmitpriv, pxmitframe);
|
rtw_free_xmitframe(pxmitpriv, pxmitframe);
|
||||||
}
|
}
|
||||||
|
@ -1490,14 +1490,14 @@ static struct xmit_frame *dequeue_one_xmitframe(struct xmit_priv *pxmitpriv, str
|
||||||
struct xmit_frame *pxmitframe = NULL;
|
struct xmit_frame *pxmitframe = NULL;
|
||||||
|
|
||||||
xmitframe_phead = get_list_head(pframe_queue);
|
xmitframe_phead = get_list_head(pframe_queue);
|
||||||
xmitframe_plist = get_next(xmitframe_phead);
|
xmitframe_plist = xmitframe_phead->next;
|
||||||
|
|
||||||
if (!rtw_end_of_queue_search(xmitframe_phead, xmitframe_plist)) {
|
if (xmitframe_phead != xmitframe_plist) {
|
||||||
pxmitframe = container_of(xmitframe_plist, struct xmit_frame, list);
|
pxmitframe = container_of(xmitframe_plist, struct xmit_frame, list);
|
||||||
|
|
||||||
xmitframe_plist = get_next(xmitframe_plist);
|
xmitframe_plist = xmitframe_plist->next;
|
||||||
|
|
||||||
rtw_list_delete(&pxmitframe->list);
|
list_del_init(&pxmitframe->list);
|
||||||
|
|
||||||
ptxservq->qcnt--;
|
ptxservq->qcnt--;
|
||||||
}
|
}
|
||||||
|
@ -1530,9 +1530,9 @@ struct xmit_frame *rtw_dequeue_xframe(struct xmit_priv *pxmitpriv, struct hw_xmi
|
||||||
phwxmit = phwxmit_i + inx[i];
|
phwxmit = phwxmit_i + inx[i];
|
||||||
|
|
||||||
sta_phead = get_list_head(phwxmit->sta_queue);
|
sta_phead = get_list_head(phwxmit->sta_queue);
|
||||||
sta_plist = get_next(sta_phead);
|
sta_plist = sta_phead->next;
|
||||||
|
|
||||||
while (!rtw_end_of_queue_search(sta_phead, sta_plist)) {
|
while (sta_phead != sta_plist) {
|
||||||
ptxservq = container_of(sta_plist, struct tx_servq, tx_pending);
|
ptxservq = container_of(sta_plist, struct tx_servq, tx_pending);
|
||||||
|
|
||||||
pframe_queue = &ptxservq->sta_pending;
|
pframe_queue = &ptxservq->sta_pending;
|
||||||
|
@ -1543,12 +1543,12 @@ struct xmit_frame *rtw_dequeue_xframe(struct xmit_priv *pxmitpriv, struct hw_xmi
|
||||||
phwxmit->accnt--;
|
phwxmit->accnt--;
|
||||||
|
|
||||||
/* Remove sta node when there are no pending packets. */
|
/* Remove sta node when there are no pending packets. */
|
||||||
if (_rtw_queue_empty(pframe_queue)) /* must be done after get_next and before break */
|
if (list_empty(&pframe_queue->queue)) /* must be done after get_next and before break */
|
||||||
rtw_list_delete(&ptxservq->tx_pending);
|
list_del_init(&ptxservq->tx_pending);
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
sta_plist = get_next(sta_plist);
|
sta_plist = sta_plist->next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
exit:
|
exit:
|
||||||
|
@ -1621,7 +1621,7 @@ s32 rtw_xmit_classifier(struct adapter *padapter, struct xmit_frame *pxmitframe)
|
||||||
|
|
||||||
ptxservq = rtw_get_sta_pending(padapter, psta, pattrib->priority, (u8 *)(&ac_index));
|
ptxservq = rtw_get_sta_pending(padapter, psta, pattrib->priority, (u8 *)(&ac_index));
|
||||||
|
|
||||||
if (rtw_is_list_empty(&ptxservq->tx_pending))
|
if (list_empty(&ptxservq->tx_pending))
|
||||||
list_add_tail(&ptxservq->tx_pending, get_list_head(phwxmits[ac_index].sta_queue));
|
list_add_tail(&ptxservq->tx_pending, get_list_head(phwxmits[ac_index].sta_queue));
|
||||||
|
|
||||||
list_add_tail(&pxmitframe->list, get_list_head(&ptxservq->sta_pending));
|
list_add_tail(&pxmitframe->list, get_list_head(&ptxservq->sta_pending));
|
||||||
|
@ -1947,7 +1947,7 @@ int xmitframe_enqueue_for_sleeping_sta(struct adapter *padapter, struct xmit_fra
|
||||||
spin_lock_bh(&psta->sleep_q.lock);
|
spin_lock_bh(&psta->sleep_q.lock);
|
||||||
|
|
||||||
if (pstapriv->sta_dz_bitmap) {/* if any one sta is in ps mode */
|
if (pstapriv->sta_dz_bitmap) {/* if any one sta is in ps mode */
|
||||||
rtw_list_delete(&pxmitframe->list);
|
list_del_init(&pxmitframe->list);
|
||||||
|
|
||||||
list_add_tail(&pxmitframe->list, get_list_head(&psta->sleep_q));
|
list_add_tail(&pxmitframe->list, get_list_head(&psta->sleep_q));
|
||||||
|
|
||||||
|
@ -1972,7 +1972,7 @@ int xmitframe_enqueue_for_sleeping_sta(struct adapter *padapter, struct xmit_fra
|
||||||
u8 wmmps_ac = 0;
|
u8 wmmps_ac = 0;
|
||||||
|
|
||||||
if (pstapriv->sta_dz_bitmap&BIT(psta->aid)) {
|
if (pstapriv->sta_dz_bitmap&BIT(psta->aid)) {
|
||||||
rtw_list_delete(&pxmitframe->list);
|
list_del_init(&pxmitframe->list);
|
||||||
|
|
||||||
list_add_tail(&pxmitframe->list, get_list_head(&psta->sleep_q));
|
list_add_tail(&pxmitframe->list, get_list_head(&psta->sleep_q));
|
||||||
|
|
||||||
|
@ -2029,12 +2029,12 @@ static void dequeue_xmitframes_to_sleeping_queue(struct adapter *padapter, struc
|
||||||
struct hw_xmit *phwxmits = padapter->xmitpriv.hwxmits;
|
struct hw_xmit *phwxmits = padapter->xmitpriv.hwxmits;
|
||||||
|
|
||||||
phead = get_list_head(pframequeue);
|
phead = get_list_head(pframequeue);
|
||||||
plist = get_next(phead);
|
plist = phead->next;
|
||||||
|
|
||||||
while (!rtw_end_of_queue_search(phead, plist)) {
|
while (phead != plist) {
|
||||||
pxmitframe = container_of(plist, struct xmit_frame, list);
|
pxmitframe = container_of(plist, struct xmit_frame, list);
|
||||||
|
|
||||||
plist = get_next(plist);
|
plist = plist->next;
|
||||||
|
|
||||||
xmitframe_enqueue_for_sleeping_sta(padapter, pxmitframe);
|
xmitframe_enqueue_for_sleeping_sta(padapter, pxmitframe);
|
||||||
|
|
||||||
|
@ -2066,21 +2066,21 @@ void stop_sta_xmit(struct adapter *padapter, struct sta_info *psta)
|
||||||
pstapriv->sta_dz_bitmap |= BIT(psta->aid);
|
pstapriv->sta_dz_bitmap |= BIT(psta->aid);
|
||||||
|
|
||||||
dequeue_xmitframes_to_sleeping_queue(padapter, psta, &pstaxmitpriv->vo_q.sta_pending);
|
dequeue_xmitframes_to_sleeping_queue(padapter, psta, &pstaxmitpriv->vo_q.sta_pending);
|
||||||
rtw_list_delete(&(pstaxmitpriv->vo_q.tx_pending));
|
list_del_init(&(pstaxmitpriv->vo_q.tx_pending));
|
||||||
|
|
||||||
dequeue_xmitframes_to_sleeping_queue(padapter, psta, &pstaxmitpriv->vi_q.sta_pending);
|
dequeue_xmitframes_to_sleeping_queue(padapter, psta, &pstaxmitpriv->vi_q.sta_pending);
|
||||||
rtw_list_delete(&(pstaxmitpriv->vi_q.tx_pending));
|
list_del_init(&(pstaxmitpriv->vi_q.tx_pending));
|
||||||
|
|
||||||
dequeue_xmitframes_to_sleeping_queue(padapter, psta, &pstaxmitpriv->be_q.sta_pending);
|
dequeue_xmitframes_to_sleeping_queue(padapter, psta, &pstaxmitpriv->be_q.sta_pending);
|
||||||
rtw_list_delete(&(pstaxmitpriv->be_q.tx_pending));
|
list_del_init(&(pstaxmitpriv->be_q.tx_pending));
|
||||||
|
|
||||||
dequeue_xmitframes_to_sleeping_queue(padapter, psta, &pstaxmitpriv->bk_q.sta_pending);
|
dequeue_xmitframes_to_sleeping_queue(padapter, psta, &pstaxmitpriv->bk_q.sta_pending);
|
||||||
rtw_list_delete(&(pstaxmitpriv->bk_q.tx_pending));
|
list_del_init(&(pstaxmitpriv->bk_q.tx_pending));
|
||||||
|
|
||||||
/* for BC/MC Frames */
|
/* for BC/MC Frames */
|
||||||
pstaxmitpriv = &psta_bmc->sta_xmitpriv;
|
pstaxmitpriv = &psta_bmc->sta_xmitpriv;
|
||||||
dequeue_xmitframes_to_sleeping_queue(padapter, psta_bmc, &pstaxmitpriv->be_q.sta_pending);
|
dequeue_xmitframes_to_sleeping_queue(padapter, psta_bmc, &pstaxmitpriv->be_q.sta_pending);
|
||||||
rtw_list_delete(&(pstaxmitpriv->be_q.tx_pending));
|
list_del_init(&(pstaxmitpriv->be_q.tx_pending));
|
||||||
|
|
||||||
spin_unlock_bh(&pxmitpriv->lock);
|
spin_unlock_bh(&pxmitpriv->lock);
|
||||||
}
|
}
|
||||||
|
@ -2096,14 +2096,14 @@ void wakeup_sta_to_xmit(struct adapter *padapter, struct sta_info *psta)
|
||||||
spin_lock_bh(&psta->sleep_q.lock);
|
spin_lock_bh(&psta->sleep_q.lock);
|
||||||
|
|
||||||
xmitframe_phead = get_list_head(&psta->sleep_q);
|
xmitframe_phead = get_list_head(&psta->sleep_q);
|
||||||
xmitframe_plist = get_next(xmitframe_phead);
|
xmitframe_plist = xmitframe_phead->next;
|
||||||
|
|
||||||
while (!rtw_end_of_queue_search(xmitframe_phead, xmitframe_plist)) {
|
while (xmitframe_phead != xmitframe_plist) {
|
||||||
pxmitframe = container_of(xmitframe_plist, struct xmit_frame, list);
|
pxmitframe = container_of(xmitframe_plist, struct xmit_frame, list);
|
||||||
|
|
||||||
xmitframe_plist = get_next(xmitframe_plist);
|
xmitframe_plist = xmitframe_plist->next;
|
||||||
|
|
||||||
rtw_list_delete(&pxmitframe->list);
|
list_del_init(&pxmitframe->list);
|
||||||
|
|
||||||
switch (pxmitframe->attrib.priority) {
|
switch (pxmitframe->attrib.priority) {
|
||||||
case 1:
|
case 1:
|
||||||
|
@ -2177,14 +2177,14 @@ void wakeup_sta_to_xmit(struct adapter *padapter, struct sta_info *psta)
|
||||||
spin_lock_bh(&psta_bmc->sleep_q.lock);
|
spin_lock_bh(&psta_bmc->sleep_q.lock);
|
||||||
|
|
||||||
xmitframe_phead = get_list_head(&psta_bmc->sleep_q);
|
xmitframe_phead = get_list_head(&psta_bmc->sleep_q);
|
||||||
xmitframe_plist = get_next(xmitframe_phead);
|
xmitframe_plist = xmitframe_phead->next;
|
||||||
|
|
||||||
while (!rtw_end_of_queue_search(xmitframe_phead, xmitframe_plist)) {
|
while (xmitframe_phead != xmitframe_plist) {
|
||||||
pxmitframe = container_of(xmitframe_plist, struct xmit_frame, list);
|
pxmitframe = container_of(xmitframe_plist, struct xmit_frame, list);
|
||||||
|
|
||||||
xmitframe_plist = get_next(xmitframe_plist);
|
xmitframe_plist = xmitframe_plist->next;
|
||||||
|
|
||||||
rtw_list_delete(&pxmitframe->list);
|
list_del_init(&pxmitframe->list);
|
||||||
|
|
||||||
psta_bmc->sleepq_len--;
|
psta_bmc->sleepq_len--;
|
||||||
if (psta_bmc->sleepq_len > 0)
|
if (psta_bmc->sleepq_len > 0)
|
||||||
|
@ -2224,12 +2224,12 @@ void xmit_delivery_enabled_frames(struct adapter *padapter, struct sta_info *pst
|
||||||
spin_lock_bh(&psta->sleep_q.lock);
|
spin_lock_bh(&psta->sleep_q.lock);
|
||||||
|
|
||||||
xmitframe_phead = get_list_head(&psta->sleep_q);
|
xmitframe_phead = get_list_head(&psta->sleep_q);
|
||||||
xmitframe_plist = get_next(xmitframe_phead);
|
xmitframe_plist = xmitframe_phead->next;
|
||||||
|
|
||||||
while (!rtw_end_of_queue_search(xmitframe_phead, xmitframe_plist)) {
|
while (xmitframe_phead != xmitframe_plist) {
|
||||||
pxmitframe = container_of(xmitframe_plist, struct xmit_frame, list);
|
pxmitframe = container_of(xmitframe_plist, struct xmit_frame, list);
|
||||||
|
|
||||||
xmitframe_plist = get_next(xmitframe_plist);
|
xmitframe_plist = xmitframe_plist->next;
|
||||||
|
|
||||||
switch (pxmitframe->attrib.priority) {
|
switch (pxmitframe->attrib.priority) {
|
||||||
case 1:
|
case 1:
|
||||||
|
@ -2254,7 +2254,7 @@ void xmit_delivery_enabled_frames(struct adapter *padapter, struct sta_info *pst
|
||||||
if (!wmmps_ac)
|
if (!wmmps_ac)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
rtw_list_delete(&pxmitframe->list);
|
list_del_init(&pxmitframe->list);
|
||||||
|
|
||||||
psta->sleepq_len--;
|
psta->sleepq_len--;
|
||||||
psta->sleepq_ac_len--;
|
psta->sleepq_ac_len--;
|
||||||
|
|
|
@ -536,11 +536,11 @@ s32 rtl8188eu_xmitframe_complete(struct adapter *adapt, struct xmit_priv *pxmitp
|
||||||
spin_lock_bh(&pxmitpriv->lock);
|
spin_lock_bh(&pxmitpriv->lock);
|
||||||
|
|
||||||
xmitframe_phead = get_list_head(&ptxservq->sta_pending);
|
xmitframe_phead = get_list_head(&ptxservq->sta_pending);
|
||||||
xmitframe_plist = get_next(xmitframe_phead);
|
xmitframe_plist = xmitframe_phead->next;
|
||||||
|
|
||||||
while (!rtw_end_of_queue_search(xmitframe_phead, xmitframe_plist)) {
|
while (xmitframe_phead != xmitframe_plist) {
|
||||||
pxmitframe = container_of(xmitframe_plist, struct xmit_frame, list);
|
pxmitframe = container_of(xmitframe_plist, struct xmit_frame, list);
|
||||||
xmitframe_plist = get_next(xmitframe_plist);
|
xmitframe_plist = xmitframe_plist->next;
|
||||||
|
|
||||||
pxmitframe->agg_num = 0; /* not first frame of aggregation */
|
pxmitframe->agg_num = 0; /* not first frame of aggregation */
|
||||||
pxmitframe->pkt_offset = 0; /* not first frame of aggregation, no need to reserve offset */
|
pxmitframe->pkt_offset = 0; /* not first frame of aggregation, no need to reserve offset */
|
||||||
|
@ -552,7 +552,7 @@ s32 rtl8188eu_xmitframe_complete(struct adapter *adapt, struct xmit_priv *pxmitp
|
||||||
pxmitframe->pkt_offset = 1;
|
pxmitframe->pkt_offset = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
rtw_list_delete(&pxmitframe->list);
|
list_del_init(&pxmitframe->list);
|
||||||
ptxservq->qcnt--;
|
ptxservq->qcnt--;
|
||||||
phwxmit->accnt--;
|
phwxmit->accnt--;
|
||||||
|
|
||||||
|
@ -586,8 +586,8 @@ s32 rtl8188eu_xmitframe_complete(struct adapter *adapt, struct xmit_priv *pxmitp
|
||||||
}
|
}
|
||||||
} /* end while (aggregate same priority and same DA(AP or STA) frames) */
|
} /* end while (aggregate same priority and same DA(AP or STA) frames) */
|
||||||
|
|
||||||
if (_rtw_queue_empty(&ptxservq->sta_pending) == true)
|
if (list_empty(&ptxservq->sta_pending.queue))
|
||||||
rtw_list_delete(&ptxservq->tx_pending);
|
list_del_init(&ptxservq->tx_pending);
|
||||||
|
|
||||||
spin_unlock_bh(&pxmitpriv->lock);
|
spin_unlock_bh(&pxmitpriv->lock);
|
||||||
if ((pfirstframe->attrib.ether_type != 0x0806) &&
|
if ((pfirstframe->attrib.ether_type != 0x0806) &&
|
||||||
|
|
|
@ -250,9 +250,6 @@ void _rtw_mfree(u8 *pbuf, u32 sz);
|
||||||
void *rtw_malloc2d(int h, int w, int size);
|
void *rtw_malloc2d(int h, int w, int size);
|
||||||
void rtw_mfree2d(void *pbuf, int h, int w, int size);
|
void rtw_mfree2d(void *pbuf, int h, int w, int size);
|
||||||
|
|
||||||
u32 rtw_is_list_empty(struct list_head *phead);
|
|
||||||
void rtw_list_delete(struct list_head *plist);
|
|
||||||
|
|
||||||
void _rtw_init_sema(struct semaphore *sema, int init_val);
|
void _rtw_init_sema(struct semaphore *sema, int init_val);
|
||||||
void _rtw_free_sema(struct semaphore *sema);
|
void _rtw_free_sema(struct semaphore *sema);
|
||||||
u32 _rtw_down_sema(struct semaphore *sema);
|
u32 _rtw_down_sema(struct semaphore *sema);
|
||||||
|
@ -261,8 +258,6 @@ void _rtw_mutex_free(struct mutex *pmutex);
|
||||||
void _rtw_spinlock_free(spinlock_t *plock);
|
void _rtw_spinlock_free(spinlock_t *plock);
|
||||||
|
|
||||||
void _rtw_init_queue(struct __queue *pqueue);
|
void _rtw_init_queue(struct __queue *pqueue);
|
||||||
u32 _rtw_queue_empty(struct __queue *pqueue);
|
|
||||||
u32 rtw_end_of_queue_search(struct list_head *queue, struct list_head *pelement);
|
|
||||||
|
|
||||||
u32 rtw_get_current_time(void);
|
u32 rtw_get_current_time(void);
|
||||||
u32 rtw_systime_to_ms(u32 systime);
|
u32 rtw_systime_to_ms(u32 systime);
|
||||||
|
|
|
@ -2590,10 +2590,7 @@ static int rtw_get_ap_info(struct net_device *dev,
|
||||||
phead = get_list_head(queue);
|
phead = get_list_head(queue);
|
||||||
plist = phead->next;
|
plist = phead->next;
|
||||||
|
|
||||||
while (1) {
|
while (phead != plist) {
|
||||||
if (rtw_end_of_queue_search(phead, plist) == true)
|
|
||||||
break;
|
|
||||||
|
|
||||||
pnetwork = container_of(plist, struct wlan_network, list);
|
pnetwork = container_of(plist, struct wlan_network, list);
|
||||||
|
|
||||||
if (hwaddr_aton_i(data, bssid)) {
|
if (hwaddr_aton_i(data, bssid)) {
|
||||||
|
@ -3093,10 +3090,7 @@ static int rtw_p2p_get_wps_configmethod(struct net_device *dev,
|
||||||
phead = get_list_head(queue);
|
phead = get_list_head(queue);
|
||||||
plist = phead->next;
|
plist = phead->next;
|
||||||
|
|
||||||
while (1) {
|
while (phead != plist) {
|
||||||
if (rtw_end_of_queue_search(phead, plist) == true)
|
|
||||||
break;
|
|
||||||
|
|
||||||
pnetwork = container_of(plist, struct wlan_network, list);
|
pnetwork = container_of(plist, struct wlan_network, list);
|
||||||
if (!memcmp(pnetwork->network.MacAddress, peerMAC, ETH_ALEN)) {
|
if (!memcmp(pnetwork->network.MacAddress, peerMAC, ETH_ALEN)) {
|
||||||
u8 *wpsie;
|
u8 *wpsie;
|
||||||
|
@ -3165,10 +3159,7 @@ static int rtw_p2p_get_go_device_address(struct net_device *dev,
|
||||||
phead = get_list_head(queue);
|
phead = get_list_head(queue);
|
||||||
plist = phead->next;
|
plist = phead->next;
|
||||||
|
|
||||||
while (1) {
|
while (phead != plist) {
|
||||||
if (rtw_end_of_queue_search(phead, plist) == true)
|
|
||||||
break;
|
|
||||||
|
|
||||||
pnetwork = container_of(plist, struct wlan_network, list);
|
pnetwork = container_of(plist, struct wlan_network, list);
|
||||||
if (!memcmp(pnetwork->network.MacAddress, peerMAC, ETH_ALEN)) {
|
if (!memcmp(pnetwork->network.MacAddress, peerMAC, ETH_ALEN)) {
|
||||||
/* Commented by Albert 2011/05/18 */
|
/* Commented by Albert 2011/05/18 */
|
||||||
|
@ -3249,10 +3240,7 @@ static int rtw_p2p_get_device_type(struct net_device *dev,
|
||||||
phead = get_list_head(queue);
|
phead = get_list_head(queue);
|
||||||
plist = phead->next;
|
plist = phead->next;
|
||||||
|
|
||||||
while (1) {
|
while (phead != plist) {
|
||||||
if (rtw_end_of_queue_search(phead, plist) == true)
|
|
||||||
break;
|
|
||||||
|
|
||||||
pnetwork = container_of(plist, struct wlan_network, list);
|
pnetwork = container_of(plist, struct wlan_network, list);
|
||||||
if (!memcmp(pnetwork->network.MacAddress, peerMAC, ETH_ALEN)) {
|
if (!memcmp(pnetwork->network.MacAddress, peerMAC, ETH_ALEN)) {
|
||||||
u8 *wpsie;
|
u8 *wpsie;
|
||||||
|
@ -3328,10 +3316,7 @@ static int rtw_p2p_get_device_name(struct net_device *dev,
|
||||||
phead = get_list_head(queue);
|
phead = get_list_head(queue);
|
||||||
plist = phead->next;
|
plist = phead->next;
|
||||||
|
|
||||||
while (1) {
|
while (phead != plist) {
|
||||||
if (rtw_end_of_queue_search(phead, plist) == true)
|
|
||||||
break;
|
|
||||||
|
|
||||||
pnetwork = container_of(plist, struct wlan_network, list);
|
pnetwork = container_of(plist, struct wlan_network, list);
|
||||||
if (!memcmp(pnetwork->network.MacAddress, peerMAC, ETH_ALEN)) {
|
if (!memcmp(pnetwork->network.MacAddress, peerMAC, ETH_ALEN)) {
|
||||||
u8 *wpsie;
|
u8 *wpsie;
|
||||||
|
@ -3399,10 +3384,7 @@ static int rtw_p2p_get_invitation_procedure(struct net_device *dev,
|
||||||
phead = get_list_head(queue);
|
phead = get_list_head(queue);
|
||||||
plist = phead->next;
|
plist = phead->next;
|
||||||
|
|
||||||
while (1) {
|
while (phead != plist) {
|
||||||
if (rtw_end_of_queue_search(phead, plist) == true)
|
|
||||||
break;
|
|
||||||
|
|
||||||
pnetwork = container_of(plist, struct wlan_network, list);
|
pnetwork = container_of(plist, struct wlan_network, list);
|
||||||
if (!memcmp(pnetwork->network.MacAddress, peerMAC, ETH_ALEN)) {
|
if (!memcmp(pnetwork->network.MacAddress, peerMAC, ETH_ALEN)) {
|
||||||
/* Commented by Albert 20121226 */
|
/* Commented by Albert 20121226 */
|
||||||
|
@ -3481,10 +3463,7 @@ static int rtw_p2p_connect(struct net_device *dev,
|
||||||
phead = get_list_head(queue);
|
phead = get_list_head(queue);
|
||||||
plist = phead->next;
|
plist = phead->next;
|
||||||
|
|
||||||
while (1) {
|
while (phead != plist) {
|
||||||
if (rtw_end_of_queue_search(phead, plist) == true)
|
|
||||||
break;
|
|
||||||
|
|
||||||
pnetwork = container_of(plist, struct wlan_network, list);
|
pnetwork = container_of(plist, struct wlan_network, list);
|
||||||
if (!memcmp(pnetwork->network.MacAddress, peerMAC, ETH_ALEN)) {
|
if (!memcmp(pnetwork->network.MacAddress, peerMAC, ETH_ALEN)) {
|
||||||
uintPeerChannel = pnetwork->network.Configuration.DSConfig;
|
uintPeerChannel = pnetwork->network.Configuration.DSConfig;
|
||||||
|
@ -3576,10 +3555,7 @@ static int rtw_p2p_invite_req(struct net_device *dev,
|
||||||
phead = get_list_head(queue);
|
phead = get_list_head(queue);
|
||||||
plist = phead->next;
|
plist = phead->next;
|
||||||
|
|
||||||
while (1) {
|
while (phead != plist) {
|
||||||
if (rtw_end_of_queue_search(phead, plist) == true)
|
|
||||||
break;
|
|
||||||
|
|
||||||
pnetwork = container_of(plist, struct wlan_network, list);
|
pnetwork = container_of(plist, struct wlan_network, list);
|
||||||
|
|
||||||
/* Commented by Albert 2011/05/18 */
|
/* Commented by Albert 2011/05/18 */
|
||||||
|
@ -3726,10 +3702,7 @@ static int rtw_p2p_prov_disc(struct net_device *dev,
|
||||||
phead = get_list_head(queue);
|
phead = get_list_head(queue);
|
||||||
plist = phead->next;
|
plist = phead->next;
|
||||||
|
|
||||||
while (1) {
|
while (phead != plist) {
|
||||||
if (rtw_end_of_queue_search(phead, plist) == true)
|
|
||||||
break;
|
|
||||||
|
|
||||||
if (uintPeerChannel != 0)
|
if (uintPeerChannel != 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -4421,7 +4394,7 @@ static int rtw_dbg_port(struct net_device *dev,
|
||||||
phead = &(pstapriv->sta_hash[i]);
|
phead = &(pstapriv->sta_hash[i]);
|
||||||
plist = phead->next;
|
plist = phead->next;
|
||||||
|
|
||||||
while ((rtw_end_of_queue_search(phead, plist)) == false) {
|
while (phead != plist) {
|
||||||
psta = container_of(plist, struct sta_info, hash_list);
|
psta = container_of(plist, struct sta_info, hash_list);
|
||||||
|
|
||||||
plist = plist->next;
|
plist = plist->next;
|
||||||
|
@ -5238,8 +5211,8 @@ static int rtw_del_sta(struct net_device *dev, struct ieee_param *param)
|
||||||
psta = rtw_get_stainfo(pstapriv, param->sta_addr);
|
psta = rtw_get_stainfo(pstapriv, param->sta_addr);
|
||||||
if (psta) {
|
if (psta) {
|
||||||
spin_lock_bh(&pstapriv->asoc_list_lock);
|
spin_lock_bh(&pstapriv->asoc_list_lock);
|
||||||
if (!rtw_is_list_empty(&psta->asoc_list)) {
|
if (!list_empty(&psta->asoc_list)) {
|
||||||
rtw_list_delete(&psta->asoc_list);
|
list_del_init(&psta->asoc_list);
|
||||||
pstapriv->asoc_list_cnt--;
|
pstapriv->asoc_list_cnt--;
|
||||||
updated = ap_free_sta(padapter, psta, true, WLAN_REASON_DEAUTH_LEAVING);
|
updated = ap_free_sta(padapter, psta, true, WLAN_REASON_DEAUTH_LEAVING);
|
||||||
}
|
}
|
||||||
|
|
|
@ -118,14 +118,6 @@ For the following list_xxx operations,
|
||||||
caller must guarantee the atomic context.
|
caller must guarantee the atomic context.
|
||||||
Otherwise, there will be racing condition.
|
Otherwise, there will be racing condition.
|
||||||
*/
|
*/
|
||||||
u32 rtw_is_list_empty(struct list_head *phead)
|
|
||||||
{
|
|
||||||
if (list_empty(phead))
|
|
||||||
return true;
|
|
||||||
else
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Caller must check if the list is empty before calling rtw_list_delete
|
Caller must check if the list is empty before calling rtw_list_delete
|
||||||
*/
|
*/
|
||||||
|
@ -167,19 +159,6 @@ void _rtw_init_queue(struct __queue *pqueue)
|
||||||
spin_lock_init(&(pqueue->lock));
|
spin_lock_init(&(pqueue->lock));
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 _rtw_queue_empty(struct __queue *pqueue)
|
|
||||||
{
|
|
||||||
return rtw_is_list_empty(&(pqueue->queue));
|
|
||||||
}
|
|
||||||
|
|
||||||
u32 rtw_end_of_queue_search(struct list_head *head, struct list_head *plist)
|
|
||||||
{
|
|
||||||
if (head == plist)
|
|
||||||
return true;
|
|
||||||
else
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
u32 rtw_get_current_time(void)
|
u32 rtw_get_current_time(void)
|
||||||
{
|
{
|
||||||
return jiffies;
|
return jiffies;
|
||||||
|
|
Loading…
Reference in a new issue