OSDN Git Service

ath: drop unnecessary list_empty
authorJulia Lawall <Julia.Lawall@inria.fr>
Sun, 26 Jul 2020 10:58:32 +0000 (12:58 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Fri, 14 Aug 2020 15:05:06 +0000 (18:05 +0300)
commit18c25b4019caa94deee67e839aea6b7b626e70d5
treec527219f8a1e06dc838cf87f9c1b005f06da3a03
parent221af8135478939eaedf1f558aea32e08e05ae65
ath: drop unnecessary list_empty

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.Lawall@inria.fr>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/1595761112-11003-8-git-send-email-Julia.Lawall@inria.fr
drivers/net/wireless/ath/dfs_pattern_detector.c