Re: [PATCH] staging: rtl8723au: use list_for_each_entry*()

From: Jes Sorensen
Date: Sun Jan 31 2016 - 12:49:55 EST


Geliang Tang <geliangtang@xxxxxxx> writes:
> Use list_for_each_entry*() instead of list_for_each*() to simplify
> the code. Fix coding style by the way.
>
> Signed-off-by: Geliang Tang <geliangtang@xxxxxxx>
> ---
> drivers/staging/rtl8723au/core/rtw_ap.c | 166 ++++++++--------------
> drivers/staging/rtl8723au/core/rtw_mlme.c | 38 ++---
> drivers/staging/rtl8723au/core/rtw_mlme_ext.c | 13 +-
> drivers/staging/rtl8723au/core/rtw_recv.c | 43 ++----
> drivers/staging/rtl8723au/core/rtw_sta_mgt.c | 34 ++---
> drivers/staging/rtl8723au/core/rtw_xmit.c | 84 ++++-------
> drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c | 22 +--
> drivers/staging/rtl8723au/os_dep/usb_ops_linux.c | 9 +-
> 8 files changed, 140 insertions(+), 269 deletions(-)

In principle this is fine, but you need to stick to doing one thing per
patch. Do the list_for_each_entry() in one patch, and the formatting
issues in another.

Jes

> diff --git a/drivers/staging/rtl8723au/core/rtw_ap.c b/drivers/staging/rtl8723au/core/rtw_ap.c
> index 1aa9b26..66315f9 100644
> --- a/drivers/staging/rtl8723au/core/rtw_ap.c
> +++ b/drivers/staging/rtl8723au/core/rtw_ap.c
> @@ -171,24 +171,20 @@ static u8 chk_sta_is_alive(struct sta_info *psta)
> return ret;
> }
>
> -void expire_timeout_chk23a(struct rtw_adapter *padapter)
> +void expire_timeout_chk23a(struct rtw_adapter *padapter)
> {
> - struct list_head *phead, *plist, *ptmp;
> + struct list_head *phead;
> u8 updated = 0;
> - struct sta_info *psta;
> + struct sta_info *psta, *ptmp;
> struct sta_priv *pstapriv = &padapter->stapriv;
> u8 chk_alive_num = 0;
> struct sta_info *chk_alive_list[NUM_STA];
> int i;
>
> spin_lock_bh(&pstapriv->auth_list_lock);
> -
> phead = &pstapriv->auth_list;
> -
> /* check auth_queue */
> - list_for_each_safe(plist, ptmp, phead) {
> - psta = container_of(plist, struct sta_info, auth_list);
> -
> + list_for_each_entry_safe(psta, ptmp, phead, auth_list) {
> if (psta->expire_to > 0) {
> psta->expire_to--;
> if (psta->expire_to == 0) {
> @@ -206,19 +202,13 @@ void expire_timeout_chk23a(struct rtw_adapter *padapter)
> spin_lock_bh(&pstapriv->auth_list_lock);
> }
> }
> -
> }
> -
> spin_unlock_bh(&pstapriv->auth_list_lock);
>
> spin_lock_bh(&pstapriv->asoc_list_lock);
> -
> phead = &pstapriv->asoc_list;
> -
> /* check asoc_queue */
> - list_for_each_safe(plist, ptmp, phead) {
> - psta = container_of(plist, struct sta_info, asoc_list);
> -
> + list_for_each_entry_safe(psta, ptmp, phead, asoc_list) {
> if (chk_sta_is_alive(psta) || !psta->expire_to) {
> psta->expire_to = pstapriv->expire_to;
> psta->keep_alive_trycnt = 0;
> @@ -283,7 +273,6 @@ void expire_timeout_chk23a(struct rtw_adapter *padapter)
> }
> }
> }
> -
> spin_unlock_bh(&pstapriv->asoc_list_lock);
>
> if (chk_alive_num) {
> @@ -299,51 +288,55 @@ void expire_timeout_chk23a(struct rtw_adapter *padapter)
> SelectChannel23a(padapter, pmlmeext->cur_channel);
> }
>
> - /* issue null data to check sta alive */
> - for (i = 0; i < chk_alive_num; i++) {
> + /* issue null data to check sta alive */
> + for (i = 0; i < chk_alive_num; i++) {
>
> - int ret = _FAIL;
> + int ret = _FAIL;
>
> - psta = chk_alive_list[i];
> - if (!(psta->state & _FW_LINKED))
> - continue;
> + psta = chk_alive_list[i];
> + if (!(psta->state & _FW_LINKED))
> + continue;
>
> - if (psta->state & WIFI_SLEEP_STATE)
> - ret = issue_nulldata23a(padapter, psta->hwaddr, 0, 1, 50);
> - else
> - ret = issue_nulldata23a(padapter, psta->hwaddr, 0, 3, 50);
> + if (psta->state & WIFI_SLEEP_STATE)
> + ret = issue_nulldata23a(padapter, psta->hwaddr,
> + 0, 1, 50);
> + else
> + ret = issue_nulldata23a(padapter, psta->hwaddr,
> + 0, 3, 50);
> +
> + psta->keep_alive_trycnt++;
> + if (ret == _SUCCESS) {
> + DBG_8723A("asoc check, sta(%pM) is alive\n",
> + psta->hwaddr);
> + psta->expire_to = pstapriv->expire_to;
> + psta->keep_alive_trycnt = 0;
> + continue;
> + } else if (psta->keep_alive_trycnt <= 3) {
> + DBG_8723A("ack check for asoc expire, keep_alive_trycnt = %d\n",
> + psta->keep_alive_trycnt);
> + psta->expire_to = 1;
> + continue;
> + }
>
> - psta->keep_alive_trycnt++;
> - if (ret == _SUCCESS) {
> - DBG_8723A("asoc check, sta(%pM) is alive\n",
> - psta->hwaddr);
> - psta->expire_to = pstapriv->expire_to;
> psta->keep_alive_trycnt = 0;
> - continue;
> - } else if (psta->keep_alive_trycnt <= 3) {
> - DBG_8723A("ack check for asoc expire, keep_alive_trycnt =%d\n", psta->keep_alive_trycnt);
> - psta->expire_to = 1;
> - continue;
> - }
>
> - psta->keep_alive_trycnt = 0;
> -
> - DBG_8723A("asoc expire %pM, state = 0x%x\n",
> - psta->hwaddr, psta->state);
> - spin_lock_bh(&pstapriv->asoc_list_lock);
> - if (!list_empty(&psta->asoc_list)) {
> - list_del_init(&psta->asoc_list);
> - pstapriv->asoc_list_cnt--;
> - updated = ap_free_sta23a(padapter, psta, false, WLAN_REASON_DEAUTH_LEAVING);
> + DBG_8723A("asoc expire %pM, state = 0x%x\n",
> + psta->hwaddr, psta->state);
> + spin_lock_bh(&pstapriv->asoc_list_lock);
> + if (!list_empty(&psta->asoc_list)) {
> + list_del_init(&psta->asoc_list);
> + pstapriv->asoc_list_cnt--;
> + updated = ap_free_sta23a(padapter, psta, false,
> + WLAN_REASON_DEAUTH_LEAVING);
> + }
> + spin_unlock_bh(&pstapriv->asoc_list_lock);
> }
> - spin_unlock_bh(&pstapriv->asoc_list_lock);
>
> + /* back to original operation channel */
> + if (backup_oper_channel > 0)
> + SelectChannel23a(padapter, backup_oper_channel);
> }
>
> - if (backup_oper_channel > 0) /* back to original operation channel */
> - SelectChannel23a(padapter, backup_oper_channel);
> -}
> -
> associated_clients_update23a(padapter, updated);
> }
>
> @@ -1059,7 +1052,7 @@ void rtw_set_macaddr_acl23a(struct rtw_adapter *padapter, int mode)
>
> int rtw_acl_add_sta23a(struct rtw_adapter *padapter, u8 *addr)
> {
> - struct list_head *plist, *phead;
> + struct list_head *phead;
> u8 added = false;
> int i, ret = 0;
> struct rtw_wlan_acl_node *paclnode;
> @@ -1073,12 +1066,8 @@ int rtw_acl_add_sta23a(struct rtw_adapter *padapter, u8 *addr)
> return -1;
>
> spin_lock_bh(&pacl_node_q->lock);
> -
> phead = get_list_head(pacl_node_q);
> -
> - list_for_each(plist, phead) {
> - paclnode = container_of(plist, struct rtw_wlan_acl_node, list);
> -
> + list_for_each_entry(paclnode, phead, list) {
> if (!memcmp(paclnode->addr, addr, ETH_ALEN)) {
> if (paclnode->valid == true) {
> added = true;
> @@ -1087,7 +1076,6 @@ int rtw_acl_add_sta23a(struct rtw_adapter *padapter, u8 *addr)
> }
> }
> }
> -
> spin_unlock_bh(&pacl_node_q->lock);
>
> if (added)
> @@ -1121,8 +1109,8 @@ int rtw_acl_add_sta23a(struct rtw_adapter *padapter, u8 *addr)
>
> int rtw_acl_remove_sta23a(struct rtw_adapter *padapter, u8 *addr)
> {
> - struct list_head *plist, *phead, *ptmp;
> - struct rtw_wlan_acl_node *paclnode;
> + struct list_head *phead;
> + struct rtw_wlan_acl_node *paclnode, *ptmp;
> struct sta_priv *pstapriv = &padapter->stapriv;
> struct wlan_acl_pool *pacl_list = &pstapriv->acl_list;
> struct rtw_queue *pacl_node_q = &pacl_list->acl_node_q;
> @@ -1130,12 +1118,8 @@ int rtw_acl_remove_sta23a(struct rtw_adapter *padapter, u8 *addr)
> DBG_8723A("%s(acl_num =%d) = %pM\n", __func__, pacl_list->num, addr);
>
> spin_lock_bh(&pacl_node_q->lock);
> -
> phead = get_list_head(pacl_node_q);
> -
> - list_for_each_safe(plist, ptmp, phead) {
> - paclnode = container_of(plist, struct rtw_wlan_acl_node, list);
> -
> + list_for_each_entry_safe(paclnode, ptmp, phead, list) {
> if (!memcmp(paclnode->addr, addr, ETH_ALEN)) {
> if (paclnode->valid) {
> paclnode->valid = false;
> @@ -1146,7 +1130,6 @@ int rtw_acl_remove_sta23a(struct rtw_adapter *padapter, u8 *addr)
> }
> }
> }
> -
> spin_unlock_bh(&pacl_node_q->lock);
>
> DBG_8723A("%s, acl_num =%d\n", __func__, pacl_list->num);
> @@ -1354,20 +1337,14 @@ void associated_clients_update23a(struct rtw_adapter *padapter, u8 updated)
> {
> /* update associated stations cap. */
> if (updated == true) {
> - struct list_head *phead, *plist, *ptmp;
> - struct sta_info *psta;
> + struct list_head *phead;
> + struct sta_info *psta, *ptmp;
> struct sta_priv *pstapriv = &padapter->stapriv;
>
> spin_lock_bh(&pstapriv->asoc_list_lock);
> -
> phead = &pstapriv->asoc_list;
> -
> - list_for_each_safe(plist, ptmp, phead) {
> - psta = container_of(plist, struct sta_info, asoc_list);
> -
> + list_for_each_entry_safe(psta, ptmp, phead, asoc_list)
> VCS_update23a(padapter, psta);
> - }
> -
> spin_unlock_bh(&pstapriv->asoc_list_lock);
> }
> }
> @@ -1627,7 +1604,7 @@ u8 ap_free_sta23a(struct rtw_adapter *padapter, struct sta_info *psta, bool acti
>
> int rtw_ap_inform_ch_switch23a(struct rtw_adapter *padapter, u8 new_ch, u8 ch_offset)
> {
> - struct list_head *phead, *plist;
> + struct list_head *phead;
> struct sta_info *psta = NULL;
> struct sta_priv *pstapriv = &padapter->stapriv;
> struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
> @@ -1642,10 +1619,7 @@ int rtw_ap_inform_ch_switch23a(struct rtw_adapter *padapter, u8 new_ch, u8 ch_of
>
> spin_lock_bh(&pstapriv->asoc_list_lock);
> phead = &pstapriv->asoc_list;
> -
> - list_for_each(plist, phead) {
> - psta = container_of(plist, struct sta_info, asoc_list);
> -
> + list_for_each_entry(psta, phead, asoc_list) {
> issue_action_spct_ch_switch23a(padapter, psta->hwaddr, new_ch, ch_offset);
> psta->expire_to = ((pstapriv->expire_to * 2) > 5) ? 5 : (pstapriv->expire_to * 2);
> }
> @@ -1658,8 +1632,8 @@ int rtw_ap_inform_ch_switch23a(struct rtw_adapter *padapter, u8 new_ch, u8 ch_of
>
> int rtw_sta_flush23a(struct rtw_adapter *padapter)
> {
> - struct list_head *phead, *plist, *ptmp;
> - struct sta_info *psta;
> + struct list_head *phead;
> + struct sta_info *psta, *ptmp;
> struct sta_priv *pstapriv = &padapter->stapriv;
> struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
> struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info;
> @@ -1675,10 +1649,7 @@ int rtw_sta_flush23a(struct rtw_adapter *padapter)
>
> spin_lock_bh(&pstapriv->asoc_list_lock);
> phead = &pstapriv->asoc_list;
> -
> - list_for_each_safe(plist, ptmp, phead) {
> - psta = container_of(plist, struct sta_info, asoc_list);
> -
> + list_for_each_entry_safe(psta, ptmp, phead, asoc_list) {
> /* Remove sta from asoc_list */
> list_del_init(&psta->asoc_list);
> pstapriv->asoc_list_cnt--;
> @@ -1744,9 +1715,9 @@ void rtw_ap_restore_network(struct rtw_adapter *padapter)
> struct mlme_priv *mlmepriv = &padapter->mlmepriv;
> struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
> struct sta_priv *pstapriv = &padapter->stapriv;
> - struct sta_info *psta;
> + struct sta_info *psta, *ptmp;
> struct security_priv *psecuritypriv = &padapter->securitypriv;
> - struct list_head *phead, *plist, *ptmp;
> + struct list_head *phead;
> u8 chk_alive_num = 0;
> struct sta_info *chk_alive_list[NUM_STA];
> int i;
> @@ -1775,15 +1746,9 @@ void rtw_ap_restore_network(struct rtw_adapter *padapter)
> }
>
> spin_lock_bh(&pstapriv->asoc_list_lock);
> -
> phead = &pstapriv->asoc_list;
> -
> - list_for_each_safe(plist, ptmp, phead) {
> - psta = container_of(plist, struct sta_info, asoc_list);
> -
> + list_for_each_entry_safe(psta, ptmp, phead, asoc_list)
> chk_alive_list[chk_alive_num++] = psta;
> - }
> -
> spin_unlock_bh(&pstapriv->asoc_list_lock);
>
> for (i = 0; i < chk_alive_num; i++) {
> @@ -1841,8 +1806,8 @@ void start_ap_mode23a(struct rtw_adapter *padapter)
>
> void stop_ap_mode23a(struct rtw_adapter *padapter)
> {
> - struct list_head *phead, *plist, *ptmp;
> - struct rtw_wlan_acl_node *paclnode;
> + struct list_head *phead;
> + struct rtw_wlan_acl_node *paclnode, *ptmp;
> struct sta_info *psta = NULL;
> struct sta_priv *pstapriv = &padapter->stapriv;
> struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
> @@ -1864,15 +1829,10 @@ void stop_ap_mode23a(struct rtw_adapter *padapter)
> /* for ACL */
> spin_lock_bh(&pacl_node_q->lock);
> phead = get_list_head(pacl_node_q);
> -
> - list_for_each_safe(plist, ptmp, phead) {
> - paclnode = container_of(plist, struct rtw_wlan_acl_node, list);
> -
> + list_for_each_entry_safe(paclnode, ptmp, phead, list) {
> if (paclnode->valid == true) {
> paclnode->valid = false;
> -
> list_del_init(&paclnode->list);
> -
> pacl_list->num--;
> }
> }
> diff --git a/drivers/staging/rtl8723au/core/rtw_mlme.c b/drivers/staging/rtl8723au/core/rtw_mlme.c
> index 3c09ea9..3adda55 100644
> --- a/drivers/staging/rtl8723au/core/rtw_mlme.c
> +++ b/drivers/staging/rtl8723au/core/rtw_mlme.c
> @@ -171,21 +171,15 @@ exit:
>
> void rtw_free_network_queue23a(struct rtw_adapter *padapter)
> {
> - struct list_head *phead, *plist, *ptmp;
> - struct wlan_network *pnetwork;
> + struct list_head *phead;
> + struct wlan_network *pnetwork, *ptmp;
> struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
> struct rtw_queue *scanned_queue = &pmlmepriv->scanned_queue;
>
> spin_lock_bh(&scanned_queue->lock);
> -
> phead = get_list_head(scanned_queue);
> -
> - list_for_each_safe(plist, ptmp, phead) {
> - pnetwork = container_of(plist, struct wlan_network, list);
> -
> + list_for_each_entry_safe(pnetwork, ptmp, phead, list)
> _rtw_free_network23a(pmlmepriv, pnetwork);
> - }
> -
> spin_unlock_bh(&scanned_queue->lock);
> }
>
> @@ -329,15 +323,12 @@ int is_same_network23a(struct wlan_bssid_ex *src, struct wlan_bssid_ex *dst)
> struct wlan_network *
> rtw_get_oldest_wlan_network23a(struct rtw_queue *scanned_queue)
> {
> - struct list_head *plist, *phead;
> + struct list_head *phead;
> struct wlan_network *pwlan;
> struct wlan_network *oldest = NULL;
>
> phead = get_list_head(scanned_queue);
> -
> - list_for_each(plist, phead) {
> - pwlan = container_of(plist, struct wlan_network, list);
> -
> + list_for_each_entry(pwlan, phead, list) {
> if (pwlan->fixed != true) {
> if (!oldest || time_after(oldest->last_scanned,
> pwlan->last_scanned))
> @@ -445,7 +436,6 @@ static void rtw_update_scanned_network(struct rtw_adapter *adapter,
>
> spin_lock_bh(&queue->lock);
> phead = get_list_head(queue);
> -
> list_for_each(plist, phead) {
> pnetwork = container_of(plist, struct wlan_network, list);
>
> @@ -710,21 +700,17 @@ rtw_surveydone_event_callback23a(struct rtw_adapter *adapter, const u8 *pbuf)
>
> static void free_scanqueue(struct mlme_priv *pmlmepriv)
> {
> - struct wlan_network *pnetwork;
> + struct wlan_network *pnetwork, *ptemp;
> struct rtw_queue *scan_queue = &pmlmepriv->scanned_queue;
> - struct list_head *plist, *phead, *ptemp;
> + struct list_head *phead;
>
> RT_TRACE(_module_rtl871x_mlme_c_, _drv_notice_, "+free_scanqueue\n");
> spin_lock_bh(&scan_queue->lock);
> -
> phead = get_list_head(scan_queue);
> -
> - list_for_each_safe(plist, ptemp, phead) {
> - pnetwork = container_of(plist, struct wlan_network, list);
> + list_for_each_entry_safe(pnetwork, ptemp, phead, list) {
> pnetwork->fixed = false;
> _rtw_free_network23a(pmlmepriv, pnetwork);
> }
> -
> spin_unlock_bh(&scan_queue->lock);
> }
>
> @@ -1625,15 +1611,13 @@ exit:
> static struct wlan_network *
> rtw_select_candidate_from_queue(struct mlme_priv *pmlmepriv)
> {
> - struct wlan_network *pnetwork, *candidate = NULL;
> + struct wlan_network *pnetwork, *ptmp, *candidate = NULL;
> struct rtw_queue *queue = &pmlmepriv->scanned_queue;
> - struct list_head *phead, *plist, *ptmp;
> + struct list_head *phead;
>
> spin_lock_bh(&pmlmepriv->scanned_queue.lock);
> phead = get_list_head(queue);
> -
> - list_for_each_safe(plist, ptmp, phead) {
> - pnetwork = container_of(plist, struct wlan_network, list);
> + list_for_each_entry_safe(pnetwork, ptmp, phead, list) {
> if (!pnetwork) {
> RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_,
> "%s: return _FAIL:(pnetwork == NULL)\n",
> diff --git a/drivers/staging/rtl8723au/core/rtw_mlme_ext.c b/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
> index d28f29a..cc99a96 100644
> --- a/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
> +++ b/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
> @@ -6082,8 +6082,8 @@ int tx_beacon_hdl23a(struct rtw_adapter *padapter, const u8 *pbuf)
> #ifdef CONFIG_8723AU_AP_MODE
> else { /* tx bc/mc frames after update TIM */
> struct sta_info *psta_bmc;
> - struct list_head *plist, *phead, *ptmp;
> - struct xmit_frame *pxmitframe;
> + struct list_head *phead;
> + struct xmit_frame *pxmitframe, *tmp;
> struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
> struct sta_priv *pstapriv = &padapter->stapriv;
>
> @@ -6096,14 +6096,8 @@ int tx_beacon_hdl23a(struct rtw_adapter *padapter, const u8 *pbuf)
> msleep(10);/* 10ms, ATIM(HIQ) Windows */
> /* spin_lock_bh(&psta_bmc->sleep_q.lock); */
> spin_lock_bh(&pxmitpriv->lock);
> -
> phead = get_list_head(&psta_bmc->sleep_q);
> -
> - list_for_each_safe(plist, ptmp, phead) {
> - pxmitframe = container_of(plist,
> - struct xmit_frame,
> - list);
> -
> + list_for_each_entry_safe(pxmitframe, tmp, phead, list) {
> list_del_init(&pxmitframe->list);
>
> psta_bmc->sleepq_len--;
> @@ -6119,7 +6113,6 @@ int tx_beacon_hdl23a(struct rtw_adapter *padapter, const u8 *pbuf)
> rtl8723au_hal_xmitframe_enqueue(padapter,
> pxmitframe);
> }
> -
> /* spin_unlock_bh(&psta_bmc->sleep_q.lock); */
> spin_unlock_bh(&pxmitpriv->lock);
> }
> diff --git a/drivers/staging/rtl8723au/core/rtw_recv.c b/drivers/staging/rtl8723au/core/rtw_recv.c
> index 404b618..de1226e 100644
> --- a/drivers/staging/rtl8723au/core/rtw_recv.c
> +++ b/drivers/staging/rtl8723au/core/rtw_recv.c
> @@ -85,16 +85,16 @@ int _rtw_init_recv_priv23a(struct recv_priv *precvpriv,
> return res;
> }
>
> -void _rtw_free_recv_priv23a (struct recv_priv *precvpriv)
> +void _rtw_free_recv_priv23a(struct recv_priv *precvpriv)
> {
> struct rtw_adapter *padapter = precvpriv->adapter;
> - struct recv_frame *precvframe;
> - struct list_head *plist, *ptmp;
> + struct recv_frame *precvframe, *ptmp;
>
> rtw_free_uc_swdec_pending_queue23a(padapter);
>
> - list_for_each_safe(plist, ptmp, &precvpriv->free_recv_queue.queue) {
> - precvframe = container_of(plist, struct recv_frame, list);
> + list_for_each_entry_safe(precvframe, ptmp,
> + &precvpriv->free_recv_queue.queue,
> + list) {
> list_del_init(&precvframe->list);
> kfree(precvframe);
> }
> @@ -195,19 +195,13 @@ using spinlock to protect
>
> static void rtw_free_recvframe23a_queue(struct rtw_queue *pframequeue)
> {
> - struct recv_frame *hdr;
> - struct list_head *plist, *phead, *ptmp;
> + struct recv_frame *hdr, *ptmp;
> + struct list_head *phead;
>
> spin_lock(&pframequeue->lock);
> -
> phead = get_list_head(pframequeue);
> - plist = phead->next;
> -
> - list_for_each_safe(plist, ptmp, phead) {
> - hdr = container_of(plist, struct recv_frame, list);
> + list_for_each_entry_safe(hdr, ptmp, phead, list)
> rtw_free_recvframe23a(hdr);
> - }
> -
> spin_unlock(&pframequeue->lock);
> }
>
> @@ -1567,16 +1561,14 @@ struct recv_frame *recvframe_defrag(struct rtw_adapter *adapter,
> struct recv_frame *recvframe_defrag(struct rtw_adapter *adapter,
> struct rtw_queue *defrag_q)
> {
> - struct list_head *plist, *phead, *ptmp;
> - u8 *data, wlanhdr_offset;
> - u8 curfragnum;
> - struct recv_frame *pnfhdr;
> + struct list_head *plist, *phead;
> + u8 wlanhdr_offset;
> + u8 curfragnum;
> + struct recv_frame *pnfhdr, *ptmp;
> struct recv_frame *prframe, *pnextrframe;
> - struct rtw_queue *pfree_recv_queue;
> + struct rtw_queue *pfree_recv_queue;
> struct sk_buff *skb;
>
> -
> -
> curfragnum = 0;
> pfree_recv_queue = &adapter->recvpriv.free_recv_queue;
>
> @@ -1597,12 +1589,7 @@ struct recv_frame *recvframe_defrag(struct rtw_adapter *adapter,
>
> curfragnum++;
>
> - phead = get_list_head(defrag_q);
> -
> - data = prframe->pkt->data;
> -
> - list_for_each_safe(plist, ptmp, phead) {
> - pnfhdr = container_of(plist, struct recv_frame, list);
> + list_for_each_entry_safe(pnfhdr, ptmp, phead, list) {
> pnextrframe = (struct recv_frame *)pnfhdr;
> /* check the fragment sequence (2nd ~n fragment frame) */
>
> @@ -1644,8 +1631,6 @@ struct recv_frame *recvframe_defrag(struct rtw_adapter *adapter,
> RT_TRACE(_module_rtl871x_recv_c_, _drv_info_,
> "Performance defrag!!!!!\n");
>
> -
> -
> return prframe;
> }
>
> diff --git a/drivers/staging/rtl8723au/core/rtw_sta_mgt.c b/drivers/staging/rtl8723au/core/rtw_sta_mgt.c
> index b06bff7..f1200e3 100644
> --- a/drivers/staging/rtl8723au/core/rtw_sta_mgt.c
> +++ b/drivers/staging/rtl8723au/core/rtw_sta_mgt.c
> @@ -83,8 +83,8 @@ int _rtw_init_sta_priv23a(struct sta_priv *pstapriv)
>
> int _rtw_free_sta_priv23a(struct sta_priv *pstapriv)
> {
> - struct list_head *phead, *plist, *ptmp;
> - struct sta_info *psta;
> + struct list_head *phead;
> + struct sta_info *psta, *ptmp;
> struct recv_reorder_ctrl *preorder_ctrl;
> int index;
>
> @@ -93,12 +93,9 @@ int _rtw_free_sta_priv23a(struct sta_priv *pstapriv)
> spin_lock_bh(&pstapriv->sta_hash_lock);
> for (index = 0; index < NUM_STA; index++) {
> phead = &pstapriv->sta_hash[index];
> -
> - list_for_each_safe(plist, ptmp, phead) {
> + list_for_each_entry_safe(psta, ptmp, phead, hash_list) {
> int i;
>
> - psta = container_of(plist, struct sta_info,
> - hash_list);
> for (i = 0; i < 16 ; i++) {
> preorder_ctrl = &psta->recvreorder_ctrl[i];
> del_timer_sync(&preorder_ctrl->reordering_ctrl_timer);
> @@ -325,8 +322,8 @@ exit:
> /* free all stainfo which in sta_hash[all] */
> void rtw_free_all_stainfo23a(struct rtw_adapter *padapter)
> {
> - struct list_head *plist, *phead, *ptmp;
> - struct sta_info *psta;
> + struct list_head *phead;
> + struct sta_info *psta, *ptmp;
> struct sta_priv *pstapriv = &padapter->stapriv;
> struct sta_info *pbcmc_stainfo = rtw_get_bcmc_stainfo23a(padapter);
> s32 index;
> @@ -335,13 +332,9 @@ void rtw_free_all_stainfo23a(struct rtw_adapter *padapter)
> return;
>
> spin_lock_bh(&pstapriv->sta_hash_lock);
> -
> for (index = 0; index < NUM_STA; index++) {
> phead = &pstapriv->sta_hash[index];
> -
> - list_for_each_safe(plist, ptmp, phead) {
> - psta = container_of(plist, struct sta_info, hash_list);
> -
> + list_for_each_entry_safe(psta, ptmp, phead, hash_list) {
> if (pbcmc_stainfo != psta)
> rtw_free_stainfo23a(padapter, psta);
> }
> @@ -352,7 +345,7 @@ void rtw_free_all_stainfo23a(struct rtw_adapter *padapter)
> /* any station allocated can be searched by hash list */
> struct sta_info *rtw_get_stainfo23a(struct sta_priv *pstapriv, const u8 *hwaddr)
> {
> - struct list_head *plist, *phead;
> + struct list_head *phead;
> struct sta_info *psta = NULL;
> u32 index;
> const u8 *addr;
> @@ -368,12 +361,8 @@ struct sta_info *rtw_get_stainfo23a(struct sta_priv *pstapriv, const u8 *hwaddr)
> index = wifi_mac_hash(addr);
>
> spin_lock_bh(&pstapriv->sta_hash_lock);
> -
> phead = &pstapriv->sta_hash[index];
> -
> - list_for_each(plist, phead) {
> - psta = container_of(plist, struct sta_info, hash_list);
> -
> + list_for_each_entry(psta, phead, hash_list) {
> /* if found the matched address */
> if (ether_addr_equal(psta->hwaddr, addr))
> break;
> @@ -418,7 +407,7 @@ bool rtw_access_ctrl23a(struct rtw_adapter *padapter, u8 *mac_addr)
> {
> bool res = true;
> #ifdef CONFIG_8723AU_AP_MODE
> - struct list_head *plist, *phead;
> + struct list_head *phead;
> struct rtw_wlan_acl_node *paclnode;
> bool match = false;
> struct sta_priv *pstapriv = &padapter->stapriv;
> @@ -427,10 +416,7 @@ bool rtw_access_ctrl23a(struct rtw_adapter *padapter, u8 *mac_addr)
>
> spin_lock_bh(&pacl_node_q->lock);
> phead = get_list_head(pacl_node_q);
> -
> - list_for_each(plist, phead) {
> - paclnode = container_of(plist, struct rtw_wlan_acl_node, list);
> -
> + list_for_each_entry(paclnode, phead, list) {
> if (ether_addr_equal(paclnode->addr, mac_addr)) {
> if (paclnode->valid) {
> match = true;
> diff --git a/drivers/staging/rtl8723au/core/rtw_xmit.c b/drivers/staging/rtl8723au/core/rtw_xmit.c
> index a4b6bb6..fc55120 100644
> --- a/drivers/staging/rtl8723au/core/rtw_xmit.c
> +++ b/drivers/staging/rtl8723au/core/rtw_xmit.c
> @@ -193,39 +193,38 @@ fail:
> goto exit;
> }
>
> -void _rtw_free_xmit_priv23a (struct xmit_priv *pxmitpriv)
> +void _rtw_free_xmit_priv23a(struct xmit_priv *pxmitpriv)
> {
> struct rtw_adapter *padapter = pxmitpriv->adapter;
> - struct xmit_frame *pxframe;
> - struct xmit_buf *pxmitbuf;
> - struct list_head *plist, *ptmp;
> + struct xmit_frame *pxframe, *ptmp;
> + struct xmit_buf *pxmitbuf, *ptmp2;
>
> - list_for_each_safe(plist, ptmp, &pxmitpriv->free_xmit_queue.queue) {
> - pxframe = container_of(plist, struct xmit_frame, list);
> + list_for_each_entry_safe(pxframe, ptmp,
> + &pxmitpriv->free_xmit_queue.queue, list) {
> list_del_init(&pxframe->list);
> rtw_os_xmit_complete23a(padapter, pxframe);
> kfree(pxframe);
> }
>
> - list_for_each_safe(plist, ptmp, &pxmitpriv->xmitbuf_list) {
> - pxmitbuf = container_of(plist, struct xmit_buf, list2);
> + list_for_each_entry_safe(pxmitbuf, ptmp2,
> + &pxmitpriv->xmitbuf_list, list2) {
> list_del_init(&pxmitbuf->list2);
> rtw_os_xmit_resource_free23a(padapter, pxmitbuf);
> kfree(pxmitbuf);
> }
>
> /* free xframe_ext queue, the same count as extbuf */
> - list_for_each_safe(plist, ptmp,
> - &pxmitpriv->free_xframe_ext_queue.queue) {
> - pxframe = container_of(plist, struct xmit_frame, list);
> + list_for_each_entry_safe(pxframe, ptmp,
> + &pxmitpriv->free_xframe_ext_queue.queue,
> + list) {
> list_del_init(&pxframe->list);
> rtw_os_xmit_complete23a(padapter, pxframe);
> kfree(pxframe);
> }
>
> /* free xmit extension buff */
> - list_for_each_safe(plist, ptmp, &pxmitpriv->xmitextbuf_list) {
> - pxmitbuf = container_of(plist, struct xmit_buf, list2);
> + list_for_each_entry_safe(pxmitbuf, ptmp2,
> + &pxmitpriv->xmitextbuf_list, list2) {
> list_del_init(&pxmitbuf->list2);
> rtw_os_xmit_resource_free23a(padapter, pxmitbuf);
> kfree(pxmitbuf);
> @@ -1563,18 +1562,13 @@ exit:
> void rtw_free_xmitframe_queue23a(struct xmit_priv *pxmitpriv,
> struct rtw_queue *pframequeue)
> {
> - struct list_head *plist, *phead, *ptmp;
> - struct xmit_frame *pxmitframe;
> + struct list_head *phead;
> + struct xmit_frame *pxmitframe, *ptmp;
>
> spin_lock_bh(&pframequeue->lock);
> -
> phead = get_list_head(pframequeue);
> -
> - list_for_each_safe(plist, ptmp, phead) {
> - pxmitframe = container_of(plist, struct xmit_frame, list);
> -
> + list_for_each_entry_safe(pxmitframe, ptmp, phead, list)
> rtw_free_xmitframe23a(pxmitpriv, pxmitframe);
> - }
> spin_unlock_bh(&pframequeue->lock);
>
> }
> @@ -1612,9 +1606,9 @@ struct xmit_frame *
> rtw_dequeue_xframe23a(struct xmit_priv *pxmitpriv, struct hw_xmit *phwxmit_i,
> int entry)
> {
> - struct list_head *sta_plist, *sta_phead, *ptmp;
> + struct list_head *sta_phead;
> struct hw_xmit *phwxmit;
> - struct tx_servq *ptxservq = NULL;
> + struct tx_servq *ptxservq = NULL, *ptmp;
> struct rtw_queue *pframe_queue = NULL;
> struct xmit_frame *pxmitframe = NULL;
> struct rtw_adapter *padapter = pxmitpriv->adapter;
> @@ -1638,11 +1632,8 @@ rtw_dequeue_xframe23a(struct xmit_priv *pxmitpriv, struct hw_xmit *phwxmit_i,
> phwxmit = phwxmit_i + inx[i];
>
> sta_phead = get_list_head(phwxmit->sta_queue);
> -
> - list_for_each_safe(sta_plist, ptmp, sta_phead) {
> - ptxservq = container_of(sta_plist, struct tx_servq,
> - tx_pending);
> -
> + list_for_each_entry_safe(ptxservq, ptmp, sta_phead,
> + tx_pending) {
> pframe_queue = &ptxservq->sta_pending;
>
> pxmitframe = dequeue_one_xmitframe(pxmitpriv, phwxmit, ptxservq, pframe_queue);
> @@ -2052,18 +2043,15 @@ dequeue_xmitframes_to_sleeping_queue(struct rtw_adapter *padapter,
> struct rtw_queue *pframequeue)
> {
> int ret;
> - struct list_head *plist, *phead, *ptmp;
> + struct list_head *phead;
> u8 ac_index;
> struct tx_servq *ptxservq;
> struct pkt_attrib *pattrib;
> - struct xmit_frame *pxmitframe;
> + struct xmit_frame *pxmitframe, *ptmp;
> struct hw_xmit *phwxmits = padapter->xmitpriv.hwxmits;
>
> phead = get_list_head(pframequeue);
> -
> - list_for_each_safe(plist, ptmp, phead) {
> - pxmitframe = container_of(plist, struct xmit_frame, list);
> -
> + list_for_each_entry_safe(pxmitframe, ptmp, phead, list) {
> ret = xmitframe_enqueue_for_sleeping_sta23a(padapter, pxmitframe);
>
> if (ret == true) {
> @@ -2124,17 +2112,14 @@ void wakeup_sta_to_xmit23a(struct rtw_adapter *padapter, struct sta_info *psta)
> {
> u8 update_mask = 0, wmmps_ac = 0;
> struct sta_info *psta_bmc;
> - struct list_head *plist, *phead, *ptmp;
> - struct xmit_frame *pxmitframe = NULL;
> + struct list_head *phead;
> + struct xmit_frame *pxmitframe = NULL, *ptmp;
> struct sta_priv *pstapriv = &padapter->stapriv;
> struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
>
> spin_lock_bh(&pxmitpriv->lock);
> -
> phead = get_list_head(&psta->sleep_q);
> -
> - list_for_each_safe(plist, ptmp, phead) {
> - pxmitframe = container_of(plist, struct xmit_frame, list);
> + list_for_each_entry_safe(pxmitframe, ptmp, phead, list) {
> list_del_init(&pxmitframe->list);
>
> switch (pxmitframe->attrib.priority) {
> @@ -2194,7 +2179,6 @@ void wakeup_sta_to_xmit23a(struct rtw_adapter *padapter, struct sta_info *psta)
>
> pstapriv->sta_dz_bitmap &= ~CHKBIT(psta->aid);
> }
> -
> /* spin_unlock_bh(&psta->sleep_q.lock); */
> spin_unlock_bh(&pxmitpriv->lock);
>
> @@ -2206,13 +2190,8 @@ void wakeup_sta_to_xmit23a(struct rtw_adapter *padapter, struct sta_info *psta)
> if ((pstapriv->sta_dz_bitmap&0xfffe) == 0x0) {
> /* no any sta in ps mode */
> spin_lock_bh(&pxmitpriv->lock);
> -
> phead = get_list_head(&psta_bmc->sleep_q);
> -
> - list_for_each_safe(plist, ptmp, phead) {
> - pxmitframe = container_of(plist, struct xmit_frame,
> - list);
> -
> + list_for_each_entry_safe(pxmitframe, ptmp, phead, list) {
> list_del_init(&pxmitframe->list);
>
> psta_bmc->sleepq_len--;
> @@ -2232,7 +2211,6 @@ void wakeup_sta_to_xmit23a(struct rtw_adapter *padapter, struct sta_info *psta)
> /* update_BCNTIM(padapter); */
> update_mask |= BIT(1);
> }
> -
> /* spin_unlock_bh(&psta_bmc->sleep_q.lock); */
> spin_unlock_bh(&pxmitpriv->lock);
> }
> @@ -2245,19 +2223,15 @@ void xmit_delivery_enabled_frames23a(struct rtw_adapter *padapter,
> struct sta_info *psta)
> {
> u8 wmmps_ac = 0;
> - struct list_head *plist, *phead, *ptmp;
> - struct xmit_frame *pxmitframe;
> + struct list_head *phead;
> + struct xmit_frame *pxmitframe, *ptmp;
> struct sta_priv *pstapriv = &padapter->stapriv;
> struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
>
> /* spin_lock_bh(&psta->sleep_q.lock); */
> spin_lock_bh(&pxmitpriv->lock);
> -
> phead = get_list_head(&psta->sleep_q);
> -
> - list_for_each_safe(plist, ptmp, phead) {
> - pxmitframe = container_of(plist, struct xmit_frame, list);
> -
> + list_for_each_entry_safe(pxmitframe, ptmp, phead, list) {
> switch (pxmitframe->attrib.priority) {
> case 1:
> case 2:
> diff --git a/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c b/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c
> index 0ae2180..908b84c 100644
> --- a/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c
> +++ b/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c
> @@ -1270,18 +1270,14 @@ void rtw_cfg80211_indicate_scan_done(struct rtw_wdev_priv *pwdev_priv,
>
> void rtw_cfg80211_surveydone_event_callback(struct rtw_adapter *padapter)
> {
> - struct list_head *plist, *phead, *ptmp;
> + struct list_head *phead;
> struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
> struct rtw_queue *queue = &pmlmepriv->scanned_queue;
> - struct wlan_network *pnetwork;
> + struct wlan_network *pnetwork, *ptmp;
>
> spin_lock_bh(&pmlmepriv->scanned_queue.lock);
> -
> phead = get_list_head(queue);
> -
> - list_for_each_safe(plist, ptmp, phead) {
> - pnetwork = container_of(plist, struct wlan_network, list);
> -
> + list_for_each_entry_safe(pnetwork, ptmp, phead, list) {
> /* report network only if the current channel set
> contains the channel to which this network belongs */
> if (rtw_ch_set_search_ch23a
> @@ -1289,7 +1285,6 @@ void rtw_cfg80211_surveydone_event_callback(struct rtw_adapter *padapter)
> pnetwork->network.DSConfig) >= 0)
> rtw_cfg80211_inform_bss(padapter, pnetwork);
> }
> -
> spin_unlock_bh(&pmlmepriv->scanned_queue.lock);
>
> /* call this after other things have been done */
> @@ -2850,9 +2845,9 @@ static int cfg80211_rtw_del_station(struct wiphy *wiphy,
> {
> const u8 *mac = params->mac;
> int ret = 0;
> - struct list_head *phead, *plist, *ptmp;
> + struct list_head *phead;
> u8 updated = 0;
> - struct sta_info *psta;
> + struct sta_info *psta, *ptmp;
> struct rtw_adapter *padapter = netdev_priv(ndev);
> struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
> struct sta_priv *pstapriv = &padapter->stapriv;
> @@ -2881,13 +2876,9 @@ static int cfg80211_rtw_del_station(struct wiphy *wiphy,
> return -EINVAL;
>
> spin_lock_bh(&pstapriv->asoc_list_lock);
> -
> phead = &pstapriv->asoc_list;
> -
> /* check asoc_queue */
> - list_for_each_safe(plist, ptmp, phead) {
> - psta = container_of(plist, struct sta_info, asoc_list);
> -
> + list_for_each_entry_safe(psta, ptmp, phead, asoc_list) {
> if (ether_addr_equal(mac, psta->hwaddr)) {
> if (psta->dot8021xalg == 1 &&
> psta->bpairwise_key_installed == false) {
> @@ -2912,7 +2903,6 @@ static int cfg80211_rtw_del_station(struct wiphy *wiphy,
> }
> }
> }
> -
> spin_unlock_bh(&pstapriv->asoc_list_lock);
>
> associated_clients_update23a(padapter, updated);
> diff --git a/drivers/staging/rtl8723au/os_dep/usb_ops_linux.c b/drivers/staging/rtl8723au/os_dep/usb_ops_linux.c
> index 0cdaef0..cf4a506 100644
> --- a/drivers/staging/rtl8723au/os_dep/usb_ops_linux.c
> +++ b/drivers/staging/rtl8723au/os_dep/usb_ops_linux.c
> @@ -210,22 +210,21 @@ exit:
> void rtl8723au_write_port_cancel(struct rtw_adapter *padapter)
> {
> struct xmit_buf *pxmitbuf;
> - struct list_head *plist;
> int j;
>
> DBG_8723A("%s\n", __func__);
>
> padapter->bWritePortCancel = true;
>
> - list_for_each(plist, &padapter->xmitpriv.xmitbuf_list) {
> - pxmitbuf = container_of(plist, struct xmit_buf, list2);
> + list_for_each_entry(pxmitbuf, &padapter->xmitpriv.xmitbuf_list,
> + list2) {
> for (j = 0; j < 8; j++) {
> if (pxmitbuf->pxmit_urb[j])
> usb_kill_urb(pxmitbuf->pxmit_urb[j]);
> }
> }
> - list_for_each(plist, &padapter->xmitpriv.xmitextbuf_list) {
> - pxmitbuf = container_of(plist, struct xmit_buf, list2);
> + list_for_each_entry(pxmitbuf, &padapter->xmitpriv.xmitextbuf_list,
> + list2) {
> for (j = 0; j < 8; j++) {
> if (pxmitbuf->pxmit_urb[j])
> usb_kill_urb(pxmitbuf->pxmit_urb[j]);