Julia Lawall <julia.law...@inria.fr> wrote: > list_for_each_entry{_safe} is able to handle an empty list. > The only effect of avoiding the loop is not initializing the > index variable. > Drop list_empty tests in cases where these variables are not > used. > > Note that list_for_each_entry{_safe} is defined in terms of > list_first_entry, which indicates that it should not be used on an > empty list. But in list_for_each_entry{_safe}, the element obtained > by list_first_entry is not really accessed, only the address of its > list_head field is compared to the address of the list head, so the > list_first_entry is safe. > > The semantic patch that makes this change for the list_for_each_entry > case is as follows: (http://coccinelle.lip6.fr/) > > <smpl> > @@ > expression x,e; > statement S; > identifier i; > @@ > > -if (!(list_empty(x))) > list_for_each_entry(i,x,...) S > ... when != i > ? i = e > </smpl> > > Signed-off-by: Julia Lawall <julia.law...@inria.fr> > Signed-off-by: Kalle Valo <kv...@codeaurora.org>
Patch applied to ath-next branch of ath.git, thanks. 18c25b4019ca ath: drop unnecessary list_empty -- https://patchwork.kernel.org/patch/11685677/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches