* [PATCH 0/4] Code cleanup
@ 2017-10-18 19:30 Srishti Sharma
2017-10-18 19:30 ` [PATCH 1/4] Staging: rtl8188eu: core: rtw_xmit: Use list_for_each_entry_safe Srishti Sharma
` (3 more replies)
0 siblings, 4 replies; 7+ messages in thread
From: Srishti Sharma @ 2017-10-18 19:30 UTC (permalink / raw)
To: gregkh; +Cc: devel, linux-kernel, outreachy-kernel, Srishti Sharma
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(-)
--
2.7.4
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/4] Staging: rtl8188eu: core: rtw_xmit: Use list_for_each_entry_safe
2017-10-18 19:30 [PATCH 0/4] Code cleanup Srishti Sharma
@ 2017-10-18 19:30 ` Srishti Sharma
2017-10-18 19:31 ` [PATCH 2/4] Staging: rtl8188eu: core: rtw_ap: " Srishti Sharma
` (2 subsequent siblings)
3 siblings, 0 replies; 7+ messages in thread
From: Srishti Sharma @ 2017-10-18 19:30 UTC (permalink / raw)
To: gregkh; +Cc: devel, linux-kernel, outreachy-kernel, 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 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)
...+>
}
...+>
}
Signed-off-by: Srishti Sharma <srishtishar@gmail.com>
---
drivers/staging/rtl8188eu/core/rtw_xmit.c | 22 ++++++----------------
1 file changed, 6 insertions(+), 16 deletions(-)
diff --git a/drivers/staging/rtl8188eu/core/rtw_xmit.c b/drivers/staging/rtl8188eu/core/rtw_xmit.c
index e8d9858..5255c27 100644
--- a/drivers/staging/rtl8188eu/core/rtw_xmit.c
+++ b/drivers/staging/rtl8188eu/core/rtw_xmit.c
@@ -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:
--
2.7.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/4] Staging: rtl8188eu: core: rtw_ap: Use list_for_each_entry_safe
2017-10-18 19:30 [PATCH 0/4] Code cleanup Srishti Sharma
2017-10-18 19:30 ` [PATCH 1/4] Staging: rtl8188eu: core: rtw_xmit: Use list_for_each_entry_safe Srishti Sharma
@ 2017-10-18 19:31 ` Srishti Sharma
2017-10-19 8:17 ` Dan Carpenter
2017-10-18 19:31 ` [PATCH 3/4] Staging: rtl8188eu: core: rtw_mlme_ext: " Srishti Sharma
2017-10-18 19:32 ` [PATCH 4/4] Staging: rtl8188eu: core: Use list_entry instead of container_of Srishti Sharma
3 siblings, 1 reply; 7+ messages in thread
From: Srishti Sharma @ 2017-10-18 19:31 UTC (permalink / raw)
To: gregkh; +Cc: devel, linux-kernel, outreachy-kernel, 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 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)
...+>
}
...+>
}
Signed-off-by: Srishti Sharma <srishtishar@gmail.com>
---
drivers/staging/rtl8188eu/core/rtw_ap.c | 34 +++++++++------------------------
1 file changed, 9 insertions(+), 25 deletions(-)
diff --git a/drivers/staging/rtl8188eu/core/rtw_ap.c b/drivers/staging/rtl8188eu/core/rtw_ap.c
index 32a4837..551af9e 100644
--- a/drivers/staging/rtl8188eu/core/rtw_ap.c
+++ b/drivers/staging/rtl8188eu/core/rtw_ap.c
@@ -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;
--
2.7.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/4] Staging: rtl8188eu: core: rtw_mlme_ext: Use list_for_each_entry_safe
2017-10-18 19:30 [PATCH 0/4] Code cleanup Srishti Sharma
2017-10-18 19:30 ` [PATCH 1/4] Staging: rtl8188eu: core: rtw_xmit: Use list_for_each_entry_safe Srishti Sharma
2017-10-18 19:31 ` [PATCH 2/4] Staging: rtl8188eu: core: rtw_ap: " Srishti Sharma
@ 2017-10-18 19:31 ` Srishti Sharma
2017-10-19 8:14 ` Dan Carpenter
2017-10-18 19:32 ` [PATCH 4/4] Staging: rtl8188eu: core: Use list_entry instead of container_of Srishti Sharma
3 siblings, 1 reply; 7+ messages in thread
From: Srishti Sharma @ 2017-10-18 19:31 UTC (permalink / raw)
To: gregkh; +Cc: devel, linux-kernel, outreachy-kernel, 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 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)
...+>
}
...+>
}
Signed-off-by: Srishti Sharma <srishtishar@gmail.com>
---
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
index 685c071..cf85fb4 100644
--- a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
+++ b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
@@ -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--;
--
2.7.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 4/4] Staging: rtl8188eu: core: Use list_entry instead of container_of
2017-10-18 19:30 [PATCH 0/4] Code cleanup Srishti Sharma
` (2 preceding siblings ...)
2017-10-18 19:31 ` [PATCH 3/4] Staging: rtl8188eu: core: rtw_mlme_ext: " Srishti Sharma
@ 2017-10-18 19:32 ` Srishti Sharma
3 siblings, 0 replies; 7+ messages in thread
From: Srishti Sharma @ 2017-10-18 19:32 UTC (permalink / raw)
To: gregkh; +Cc: devel, linux-kernel, outreachy-kernel, Srishti Sharma
For 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,...)
Signed-off-by: Srishti Sharma <srishtishar@gmail.com>
---
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(-)
diff --git a/drivers/staging/rtl8188eu/core/rtw_ap.c b/drivers/staging/rtl8188eu/core/rtw_ap.c
index 551af9e..c968472 100644
--- a/drivers/staging/rtl8188eu/core/rtw_ap.c
+++ b/drivers/staging/rtl8188eu/core/rtw_ap.c
@@ -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;
diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme.c b/drivers/staging/rtl8188eu/core/rtw_mlme.c
index b15cf17..82f25b6 100644
--- a/drivers/staging/rtl8188eu/core/rtw_mlme.c
+++ b/drivers/staging/rtl8188eu/core/rtw_mlme.c
@@ -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;
diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
index cf85fb4..5b38f63 100644
--- a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
+++ b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
@@ -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;
diff --git a/drivers/staging/rtl8188eu/core/rtw_sta_mgt.c b/drivers/staging/rtl8188eu/core/rtw_sta_mgt.c
index 2fd2a9e..aab2895 100644
--- a/drivers/staging/rtl8188eu/core/rtw_sta_mgt.c
+++ b/drivers/staging/rtl8188eu/core/rtw_sta_mgt.c
@@ -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)) {
diff --git a/drivers/staging/rtl8188eu/core/rtw_xmit.c b/drivers/staging/rtl8188eu/core/rtw_xmit.c
index 5255c27..1bc98c6 100644
--- a/drivers/staging/rtl8188eu/core/rtw_xmit.c
+++ b/drivers/staging/rtl8188eu/core/rtw_xmit.c
@@ -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;
--
2.7.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 3/4] Staging: rtl8188eu: core: rtw_mlme_ext: Use list_for_each_entry_safe
2017-10-18 19:31 ` [PATCH 3/4] Staging: rtl8188eu: core: rtw_mlme_ext: " Srishti Sharma
@ 2017-10-19 8:14 ` Dan Carpenter
0 siblings, 0 replies; 7+ messages in thread
From: Dan Carpenter @ 2017-10-19 8:14 UTC (permalink / raw)
To: Srishti Sharma; +Cc: gregkh, devel, outreachy-kernel, linux-kernel
On Thu, Oct 19, 2017 at 01:01:39AM +0530, Srishti Sharma wrote:
> 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)
> ...+>
> }
> ...+>
>
> }
>
> Signed-off-by: Srishti Sharma <srishtishar@gmail.com>
> ---
> drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 9 ++++-----
> 1 file changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
> index 685c071..cf85fb4 100644
> --- a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
> +++ b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
> @@ -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) {
I'm pretty sure we should get rid of the xmitframe_plist variable and
use xmitframe_phead here.
regards,
dan carpenter
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/4] Staging: rtl8188eu: core: rtw_ap: Use list_for_each_entry_safe
2017-10-18 19:31 ` [PATCH 2/4] Staging: rtl8188eu: core: rtw_ap: " Srishti Sharma
@ 2017-10-19 8:17 ` Dan Carpenter
0 siblings, 0 replies; 7+ messages in thread
From: Dan Carpenter @ 2017-10-19 8:17 UTC (permalink / raw)
To: Srishti Sharma; +Cc: gregkh, devel, outreachy-kernel, linux-kernel
On Thu, Oct 19, 2017 at 01:01:14AM +0530, Srishti Sharma wrote:
> 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)
> ...+>
> }
> ...+>
>
> }
>
> Signed-off-by: Srishti Sharma <srishtishar@gmail.com>
> ---
> drivers/staging/rtl8188eu/core/rtw_ap.c | 34 +++++++++------------------------
> 1 file changed, 9 insertions(+), 25 deletions(-)
>
> diff --git a/drivers/staging/rtl8188eu/core/rtw_ap.c b/drivers/staging/rtl8188eu/core/rtw_ap.c
> index 32a4837..551af9e 100644
> --- a/drivers/staging/rtl8188eu/core/rtw_ap.c
> +++ b/drivers/staging/rtl8188eu/core/rtw_ap.c
> @@ -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) {
This one as well. (I'm reviewing in reverse order) We don't need
plist, just phead.
regards,
dan carpenter
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2017-10-19 8:17 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-18 19:30 [PATCH 0/4] Code cleanup Srishti Sharma
2017-10-18 19:30 ` [PATCH 1/4] Staging: rtl8188eu: core: rtw_xmit: Use list_for_each_entry_safe Srishti Sharma
2017-10-18 19:31 ` [PATCH 2/4] Staging: rtl8188eu: core: rtw_ap: " Srishti Sharma
2017-10-19 8:17 ` Dan Carpenter
2017-10-18 19:31 ` [PATCH 3/4] Staging: rtl8188eu: core: rtw_mlme_ext: " Srishti Sharma
2017-10-19 8:14 ` Dan Carpenter
2017-10-18 19:32 ` [PATCH 4/4] Staging: rtl8188eu: core: Use list_entry instead of container_of Srishti Sharma
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.