a383308e50
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 is as follows (with another variant for the no brace case): (http://coccinelle.lip6.fr/) <smpl> @@ expression x,e; iterator name list_for_each_entry_safe; statement S; identifier i,j; @@ -if (!(list_empty(x))) { list_for_each_entry_safe(i,j,x,...) S - } ... when != i when != j ( i = e; | ? j = e; ) </smpl> Signed-off-by: Julia Lawall <Julia.Lawall@inria.fr> Link: https://lore.kernel.org/r/1595761112-11003-2-git-send-email-Julia.Lawall@inria.fr Signed-off-by: Mark Brown <broonie@kernel.org> |
||
---|---|---|
.. | ||
bxt-sst.c | ||
cnl-sst-dsp.c | ||
cnl-sst-dsp.h | ||
cnl-sst.c | ||
Makefile | ||
skl-debug.c | ||
skl-i2s.h | ||
skl-messages.c | ||
skl-nhlt.c | ||
skl-pcm.c | ||
skl-ssp-clk.c | ||
skl-ssp-clk.h | ||
skl-sst-cldma.c | ||
skl-sst-cldma.h | ||
skl-sst-dsp.c | ||
skl-sst-dsp.h | ||
skl-sst-ipc.c | ||
skl-sst-ipc.h | ||
skl-sst-utils.c | ||
skl-sst.c | ||
skl-topology.c | ||
skl-topology.h | ||
skl.c | ||
skl.h |