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@xxxxxxxxx> > --- > 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 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel