Code cleanup
cover Code cleanup
This patch series performs code cleanup like using list_for_each_entry_safe to make code more compact and using list_entry instead of container_of for struct list_head* variable types.
Srishti Sharma (4):
Staging: rtl8188eu: core: rtw_xmit: Use list_for_each_entry_safe
Staging: rtl8188eu: core: rtw_ap: Use list_for_each_entry_safe
Staging: rtl8188eu: core: rtw_mlme_ext: Use list_for_each_entry_safe
Staging: rtl8188eu: core: Use list_entry instead of container_of
drivers/staging/rtl8188eu/core/rtw_ap.c | 38 ++++++++------------------- drivers/staging/rtl8188eu/core/rtw_mlme.c | 8 +++--- drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 11 ++++---- drivers/staging/rtl8188eu/core/rtw_sta_mgt.c | 12 ++++----- drivers/staging/rtl8188eu/core/rtw_xmit.c | 30 +++++++-------------- 5 files changed, 36 insertions(+), 63 deletions(-)
Signature · 1 line
2.7.4
PATCH 1/4 Staging: rtl8188eu: core: rtw_xmit: Use list_for_each_entry_safe
This is a cleanup patch and doesn't change runtime behaviour. It changes an open coded list traversal to use list_for_each_entry_safe. Done using the following semantic patch by coccinelle.
@r@
struct list_head* l;
expression e;
identifier m,list_del_init,f;
type T1;
T1* pos;
iterator name list_for_each_entry_safe;
@@
f(...){
+T1* tmp;
<+...
-while(...)
+list_for_each_entry_safe(pos,tmp,l,m)
{
...
-pos = container_of(l,T1,m);
...
-l=e;
<+...
list_del_init(&pos->m)
...+>
}
...+>
}
--- drivers/staging/rtl8188eu/core/rtw_xmit.c | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-)
drivers/staging/rtl8188eu/core/rtw_xmit.c +6 -16
@@ -1866,6 +1866,7 @@ void stop_sta_xmit(struct adapter *padapter, struct sta_info *psta)void wakeup_sta_to_xmit (struct adapter *padapter,struct sta_info *psta) { +struct xmit_frame *tmp;u8 update_mask =0 , wmmps_ac =0 ;struct sta_info *psta_bmc;struct list_head *xmitframe_plist, *xmitframe_phead;
@@ -1877,11 +1878,7 @@ void wakeup_sta_to_xmit(struct adapter *padapter, struct sta_info *psta) xmitframe_phead =get_list_head (&psta->sleep_q); xmitframe_plist = xmitframe_phead->next; -while (xmitframe_phead != xmitframe_plist) { - pxmitframe = container_of(xmitframe_plist, struct xmit_frame, list); - - xmitframe_plist = xmitframe_plist->next; - +list_for_each_entry_safe (pxmitframe, tmp, xmitframe_plist, list) {list_del_init (&pxmitframe->list);switch (pxmitframe->attrib.priority) {
@@ -1958,11 +1955,8 @@ void wakeup_sta_to_xmit(struct adapter *padapter, struct sta_info *psta) xmitframe_phead =get_list_head (&psta_bmc->sleep_q); xmitframe_plist = xmitframe_phead->next; -while (xmitframe_phead != xmitframe_plist) { - pxmitframe = container_of(xmitframe_plist, struct xmit_frame, list); - - xmitframe_plist = xmitframe_plist->next; - +list_for_each_entry_safe (pxmitframe, tmp, xmitframe_plist, + list) {list_del_init (&pxmitframe->list); psta_bmc->sleepq_len--;
@@ -1997,7 +1991,7 @@ void xmit_delivery_enabled_frames(struct adapter *padapter, struct sta_info *pst {u8 wmmps_ac =0 ;struct list_head *xmitframe_plist, *xmitframe_phead; -struct xmit_frame *pxmitframe =NULL ; +struct xmit_frame *pxmitframe =NULL , *tmp;struct sta_priv *pstapriv = &padapter->stapriv;spin_lock_bh (&psta->sleep_q.lock);
@@ -2005,11 +1999,7 @@ void xmit_delivery_enabled_frames(struct adapter *padapter, struct sta_info *pst xmitframe_phead =get_list_head (&psta->sleep_q); xmitframe_plist = xmitframe_phead->next; -while (xmitframe_phead != xmitframe_plist) { - pxmitframe = container_of(xmitframe_plist, struct xmit_frame, list); - - xmitframe_plist = xmitframe_plist->next; - +list_for_each_entry_safe (pxmitframe, tmp, xmitframe_plist, list) {switch (pxmitframe->attrib.priority) {case 1 :case 2 :
Signature · 1 line
2.7.4
PATCH 2/4 Staging: rtl8188eu: core: rtw_ap: Use list_for_each_entry_safe
In reply to Srishti SharmaThis is a cleanup patch and doesn't change runtime behaviour. It changes an open coded list traversal to use list_for_each_entry_safe. Done using the following semantic patch by coccinelle.
@r@
struct list_head* l;
expression e;
identifier m,list_del_init,f;
type T1;
T1* pos;
iterator name list_for_each_entry_safe;
@@
f(...){
+T1* tmp;
<+...
-while(...)
+list_for_each_entry_safe(pos,tmp,l,m)
{
...
-pos = container_of(l,T1,m);
...
-l=e;
<+...
list_del_init(&pos->m)
...+>
}
...+>
}
--- drivers/staging/rtl8188eu/core/rtw_ap.c | 34 +++++++++------------------------ 1 file changed, 9 insertions(+), 25 deletions(-)
drivers/staging/rtl8188eu/core/rtw_ap.c +9 -25
@@ -280,7 +280,7 @@ void expire_timeout_chk(struct adapter *padapter) {struct list_head *phead, *plist;u8 updated =0 ; -struct sta_info *psta =NULL ; +struct sta_info *psta =NULL , *tmp;struct sta_priv *pstapriv = &padapter->stapriv;u8 chk_alive_num =0 ;char chk_alive_list[NUM_STA ];
@@ -292,10 +292,7 @@ void expire_timeout_chk(struct adapter *padapter) plist = phead->next;/* check auth_queue */ -while (phead != plist) { - psta = container_of(plist, struct sta_info, auth_list); - plist = plist->next; - +list_for_each_entry_safe (psta, tmp, plist, auth_list) {if (psta->expire_to >0 ) { psta->expire_to--;if (psta->expire_to ==0 ) {
@@ -326,10 +323,7 @@ void expire_timeout_chk(struct adapter *padapter) plist = phead->next;/* check asoc_queue */ -while (phead != plist) { - psta = container_of(plist, struct sta_info, asoc_list); - plist = plist->next; - +list_for_each_entry_safe (psta, tmp, plist, asoc_list) {if (chk_sta_is_alive (psta) || !psta->expire_to) { psta->expire_to = pstapriv->expire_to; psta->keep_alive_trycnt =0 ;
@@ -1196,7 +1190,7 @@ int rtw_acl_add_sta(struct adapter *padapter, u8 *addr)int rtw_acl_remove_sta (struct adapter *padapter,u8 *addr) {struct list_head *plist, *phead; -struct rtw_wlan_acl_node *paclnode; +struct rtw_wlan_acl_node *paclnode, *tmp;struct sta_priv *pstapriv = &padapter->stapriv;struct wlan_acl_pool *pacl_list = &pstapriv->acl_list;struct __queue *pacl_node_q = &pacl_list->acl_node_q;
@@ -1208,10 +1202,7 @@ int rtw_acl_remove_sta(struct adapter *padapter, u8 *addr) phead =get_list_head (pacl_node_q); plist = phead->next; -while (phead != plist) { - paclnode = container_of(plist, struct rtw_wlan_acl_node, list); - plist = plist->next; - +list_for_each_entry_safe (paclnode, tmp, plist, list) {if (!memcmp (paclnode->addr, addr,ETH_ALEN )) {if (paclnode->valid) { paclnode->valid = false;
@@ -1711,7 +1702,7 @@ u8 ap_free_sta(struct adapter *padapter, struct sta_info *psta,int rtw_sta_flush (struct adapter *padapter) {struct list_head *phead, *plist; -struct sta_info *psta =NULL ; +struct sta_info *psta =NULL , *tmp;struct sta_priv *pstapriv = &padapter->stapriv;struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info;
@@ -1727,11 +1718,7 @@ int rtw_sta_flush(struct adapter *padapter) plist = phead->next;/* free sta asoc_queue */ -while (phead != plist) { - psta = container_of(plist, struct sta_info, asoc_list); - - plist = plist->next; - +list_for_each_entry_safe (psta, tmp, plist, asoc_list) {list_del_init (&psta->asoc_list); pstapriv->asoc_list_cnt--;
@@ -1833,7 +1820,7 @@ void start_ap_mode(struct adapter *padapter)void stop_ap_mode (struct adapter *padapter) {struct list_head *phead, *plist; -struct rtw_wlan_acl_node *paclnode; +struct rtw_wlan_acl_node *paclnode, *tmp;struct sta_info *psta =NULL ;struct sta_priv *pstapriv = &padapter->stapriv;struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
@@ -1855,10 +1842,7 @@ void stop_ap_mode(struct adapter *padapter)spin_lock_bh (&pacl_node_q->lock); phead =get_list_head (pacl_node_q); plist = phead->next; -while (phead != plist) { - paclnode = container_of(plist, struct rtw_wlan_acl_node, list); - plist = plist->next; - +list_for_each_entry_safe (paclnode, tmp, plist, list) {if (paclnode->valid) { paclnode->valid = false;
Signature · 1 line
2.7.4
Re: [PATCH 2/4] Staging: rtl8188eu: core: rtw_ap: Use list_for_each_entry_safe
Quoted 51 lines · Srishti Sharma
This is a cleanup patch and doesn't change runtime behaviour. It changes an open coded list traversal to use
list_for_each_entry_safe. Done using the following semantic patch by coccinelle.@r@
struct list_head* l;
expression e;
identifier m,list_del_init,f;
type T1;
T1* pos;
iterator namelist_for_each_entry_safe;
@@f(...){
+T1* tmp;
<+...(quoted diff) +1
-1-while(...) +list_for_each_entry_safe(pos,tmp,l,m){
...(quoted diff) +0
-2-pos = container_of(l,T1,m); -l=e; <+... list_del_init(&pos->m) ...+>}
...+>}
Signed-off-by Srishti Sharma <[email protected]>--- drivers/staging/rtl8188eu/core/rtw_ap.c | 34 +++++++++------------------------ 1 file changed, 9 insertions(+), 25 deletions(-)drivers/staging/rtl8188eu/core/rtw_ap.c +1
-1@@ -280,7 +280,7 @@ void expire_timeout_chk(struct adapter *padapter) {struct list_head *phead, *plist;u8 updated =0 ; -struct sta_info *psta =NULL ; +struct sta_info *psta =NULL , *tmp;struct sta_priv *pstapriv = &padapter->stapriv;u8 chk_alive_num =0 ;char chk_alive_list[NUM_STA ];
drivers/staging/rtl8188eu/core/rtw_ap.c void expire_timeout_chk(struct adapter *padapter) · line 295
Quoted 8 lines
drivers/staging/rtl8188eu/core/rtw_ap.c +1
-4@@ -292,10 +292,7 @@ void expire_timeout_chk(struct adapter *padapter) plist = phead->next;/* check auth_queue */ -while (phead != plist) { - psta = container_of(plist, struct sta_info, auth_list); - plist = plist->next; - +list_for_each_entry_safe (psta, tmp, plist, auth_list) {
This one as well. (I'm reviewing in reverse order) We don't need plist, just phead.
regards,
dan carpenter
PATCH 3/4 Staging: rtl8188eu: core: rtw_mlme_ext: Use list_for_each_entry_safe
In reply to Srishti SharmaThis is a cleanup patch and doesn't change runtime behaviour. It changes an open coded list traversal to use list_for_each_entry_safe. Done using the following semantic patch by coccinelle.
@r@
struct list_head* l;
expression e;
identifier m,list_del_init,f;
type T1;
T1* pos;
iterator name list_for_each_entry_safe;
@@
f(...){
+T1* tmp;
<+...
-while(...)
+list_for_each_entry_safe(pos,tmp,l,m)
{
...
-pos = container_of(l,T1,m);
...
-l=e;
<+...
list_del_init(&pos->m)
...+>
}
...+>
}
--- drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c +4 -5
@@ -5463,6 +5463,8 @@ u8 mlme_evt_hdl(struct adapter *padapter, unsigned char *pbuf)u8 tx_beacon_hdl (struct adapter *padapter,unsigned char *pbuf) { +struct xmit_frame *tmp; +if (send_beacon (padapter) == _FAIL) {DBG_88E ("issue_beacon, fail!\n" );return H2C_PARAMETERS_ERROR ;
@@ -5486,11 +5488,8 @@ u8 tx_beacon_hdl(struct adapter *padapter, unsigned char *pbuf) xmitframe_phead =get_list_head (&psta_bmc->sleep_q); xmitframe_plist = xmitframe_phead->next; -while (xmitframe_phead != xmitframe_plist) { - pxmitframe = container_of(xmitframe_plist, struct xmit_frame, list); - - xmitframe_plist = xmitframe_plist->next; - +list_for_each_entry_safe (pxmitframe, tmp, + xmitframe_plist, list) {list_del_init (&pxmitframe->list); psta_bmc->sleepq_len--;
Signature · 1 line
2.7.4
Re: [PATCH 3/4] Staging: rtl8188eu: core: rtw_mlme_ext: Use list_for_each_entry_safe
Quoted 51 lines · Srishti Sharma
This is a cleanup patch and doesn't change runtime behaviour. It changes an open coded list traversal to use
list_for_each_entry_safe. Done using the following semantic patch by coccinelle.@r@
struct list_head* l;
expression e;
identifier m,list_del_init,f;
type T1;
T1* pos;
iterator namelist_for_each_entry_safe;
@@f(...){
+T1* tmp;
<+...(quoted diff) +1
-1-while(...) +list_for_each_entry_safe(pos,tmp,l,m){
...(quoted diff) +0
-2-pos = container_of(l,T1,m); -l=e; <+... list_del_init(&pos->m) ...+>}
...+>}
Signed-off-by Srishti Sharma <[email protected]>--- drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)drivers/staging/rtl8188eu/core/rtw_mlme_ext.c +2
-0@@ -5463,6 +5463,8 @@ u8 mlme_evt_hdl(struct adapter *padapter, unsigned char *pbuf)u8 tx_beacon_hdl (struct adapter *padapter,unsigned char *pbuf) { +struct xmit_frame *tmp; +if (send_beacon (padapter) == _FAIL) {DBG_88E ("issue_beacon, fail!\n" );return H2C_PARAMETERS_ERROR ;
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c u8 tx_beacon_hdl(struct adapter *padapter, unsigned char *pbuf) · line 5492
Quoted 10 lines
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c +2
-5@@ -5486,11 +5488,8 @@ u8 tx_beacon_hdl(struct adapter *padapter, unsigned char *pbuf) xmitframe_phead =get_list_head (&psta_bmc->sleep_q); xmitframe_plist = xmitframe_phead->next; -while (xmitframe_phead != xmitframe_plist) { - pxmitframe = container_of(xmitframe_plist, struct xmit_frame, list); - - xmitframe_plist = xmitframe_plist->next; - +list_for_each_entry_safe (pxmitframe, tmp, + xmitframe_plist, list) {
I'm pretty sure we should get rid of the xmitframe_plist variable and use xmitframe_phead here.
regards,
dan carpenter
PATCH 4/4 Staging: rtl8188eu: core: Use list_entry instead of container_of
In reply to Srishti SharmaFor variables of the struct list_head* use list_entry to access current list element instead of using container_of. Done using the following semantic patch by coccinelle.
@r@
struct list_head* l;
@@
-container_of
+list_entry
(l,...)
--- drivers/staging/rtl8188eu/core/rtw_ap.c | 4 ++-- drivers/staging/rtl8188eu/core/rtw_mlme.c | 8 ++++---- drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 2 +- drivers/staging/rtl8188eu/core/rtw_sta_mgt.c | 12 ++++++------ drivers/staging/rtl8188eu/core/rtw_xmit.c | 8 ++++---- 5 files changed, 17 insertions(+), 17 deletions(-)
drivers/staging/rtl8188eu/core/rtw_ap.c +2 -2
@@ -1143,7 +1143,7 @@ int rtw_acl_add_sta(struct adapter *padapter, u8 *addr) plist = phead->next;while (phead != plist) { - paclnode = container_of(plist, struct rtw_wlan_acl_node, list); + paclnode = list_entry(plist, struct rtw_wlan_acl_node, list); plist = plist->next;if (!memcmp (paclnode->addr, addr,ETH_ALEN )) {
@@ -1447,7 +1447,7 @@ void associated_clients_update(struct adapter *padapter, u8 updated)/* check asoc_queue */ while (phead != plist) { - psta = container_of(plist, struct sta_info, asoc_list); + psta = list_entry(plist, struct sta_info, asoc_list); plist = plist->next;
drivers/staging/rtl8188eu/core/rtw_mlme.c +4 -4
@@ -198,7 +198,7 @@ struct wlan_network *rtw_find_network(struct __queue *scanned_queue, u8 *addr) plist = phead->next;while (plist != phead) { - pnetwork = container_of(plist, struct wlan_network, list); + pnetwork = list_entry(plist, struct wlan_network, list);if (!memcmp (addr, pnetwork->network.MacAddress,ETH_ALEN ))break ; plist = plist->next;
@@ -223,7 +223,7 @@ void rtw_free_network_queue(struct adapter *padapter, u8 isfreeall) plist = phead->next;while (phead != plist) { - pnetwork = container_of(plist, struct wlan_network, list); + pnetwork = list_entry(plist, struct wlan_network, list); plist = plist->next;
@@ -342,7 +342,7 @@ struct wlan_network *rtw_get_oldest_wlan_network(struct __queue *scanned_queue) phead =get_list_head (scanned_queue);for (plist = phead->next; plist != phead; plist = plist->next) { - pwlan = container_of(plist, struct wlan_network, list); + pwlan = list_entry(plist, struct wlan_network, list);if (!pwlan->fixed) {if (!oldest ||time_after (oldest->last_scanned, pwlan->last_scanned))
@@ -421,7 +421,7 @@ void rtw_update_scanned_network(struct adapter *adapter, struct wlan_bssid_ex *t plist = phead->next;while (phead != plist) { - pnetwork = container_of(plist, struct wlan_network, list); + pnetwork = list_entry(plist, struct wlan_network, list);if (is_same_network (&(pnetwork->network), target))break ;
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c +1 -1
@@ -1798,7 +1798,7 @@ static void issue_action_BSSCoexistPacket(struct adapter *padapter)u8 *p;struct wlan_bssid_ex *pbss_network; - pnetwork = container_of(plist, struct wlan_network, list); + pnetwork = list_entry(plist, struct wlan_network, list); plist = plist->next;
drivers/staging/rtl8188eu/core/rtw_sta_mgt.c +6 -6
@@ -152,8 +152,8 @@ u32 _rtw_free_sta_priv(struct sta_priv *pstapriv)while (phead != plist) {int i; - psta = container_of(plist, struct sta_info, - hash_list); + psta = list_entry(plist, struct sta_info, + hash_list); plist = plist->next;for (i =0 ; i <16 ; i++) {
@@ -323,7 +323,7 @@ u32 rtw_free_stainfo(struct adapter *padapter, struct sta_info *psta) plist = phead->next;while (!list_empty (phead)) { - prframe = container_of(plist, struct recv_frame, list); + prframe = list_entry(plist, struct recv_frame, list); plist = plist->next;
@@ -399,7 +399,7 @@ void rtw_free_all_stainfo(struct adapter *padapter) plist = phead->next;while (phead != plist) { - psta = container_of(plist, struct sta_info, hash_list); + psta = list_entry(plist, struct sta_info, hash_list); plist = plist->next;
@@ -435,7 +435,7 @@ struct sta_info *rtw_get_stainfo(struct sta_priv *pstapriv, u8 *hwaddr) plist = phead->next;while (phead != plist) { - psta = container_of(plist, struct sta_info, hash_list); + psta = list_entry(plist, struct sta_info, hash_list);if ((!memcmp (psta->hwaddr, addr,ETH_ALEN )) == true) {/* if found the matched address */
@@ -493,7 +493,7 @@ u8 rtw_access_ctrl(struct adapter *padapter, u8 *mac_addr) phead =get_list_head (pacl_node_q); plist = phead->next;while (phead != plist) { - paclnode = container_of(plist, struct rtw_wlan_acl_node, list); + paclnode = list_entry(plist, struct rtw_wlan_acl_node, list); plist = plist->next;if (!memcmp (paclnode->addr, mac_addr,ETH_ALEN )) {
drivers/staging/rtl8188eu/core/rtw_xmit.c +4 -4
@@ -1401,7 +1401,7 @@ void rtw_free_xmitframe_queue(struct xmit_priv *pxmitpriv, struct __queue *pfram plist = phead->next;while (phead != plist) { - pxmitframe = container_of(plist, struct xmit_frame, list); + pxmitframe = list_entry(plist, struct xmit_frame, list); plist = plist->next;
@@ -1432,7 +1432,7 @@ static struct xmit_frame *dequeue_one_xmitframe(struct xmit_priv *pxmitpriv, str xmitframe_plist = xmitframe_phead->next;if (xmitframe_phead != xmitframe_plist) { - pxmitframe = container_of(xmitframe_plist, struct xmit_frame, list); + pxmitframe = list_entry(xmitframe_plist, struct xmit_frame, list); xmitframe_plist = xmitframe_plist->next;
@@ -1473,7 +1473,7 @@ struct xmit_frame *rtw_dequeue_xframe(struct xmit_priv *pxmitpriv, struct hw_xmi sta_plist = sta_phead->next;while (sta_phead != sta_plist) { - ptxservq = container_of(sta_plist, struct tx_servq, tx_pending); + ptxservq = list_entry(sta_plist, struct tx_servq, tx_pending); pframe_queue = &ptxservq->sta_pending;
@@ -1811,7 +1811,7 @@ static void dequeue_xmitframes_to_sleeping_queue(struct adapter *padapter, struc plist = phead->next;while (phead != plist) { - pxmitframe = container_of(plist, struct xmit_frame, list); + pxmitframe = list_entry(plist, struct xmit_frame, list); plist = plist->next;
Signature · 1 line
2.7.4