Commit a383308e authored by Julia Lawall's avatar Julia Lawall Committed by Mark Brown

ASoC: Intel: 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 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: default avatarJulia Lawall <Julia.Lawall@inria.fr>
Link: https://lore.kernel.org/r/1595761112-11003-2-git-send-email-Julia.Lawall@inria.frSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 39473c2c
...@@ -276,13 +276,11 @@ void sst_memcpy_free_resources(struct intel_sst_drv *sst_drv_ctx) ...@@ -276,13 +276,11 @@ void sst_memcpy_free_resources(struct intel_sst_drv *sst_drv_ctx)
struct sst_memcpy_list *listnode, *tmplistnode; struct sst_memcpy_list *listnode, *tmplistnode;
/* Free the list */ /* Free the list */
if (!list_empty(&sst_drv_ctx->memcpy_list)) {
list_for_each_entry_safe(listnode, tmplistnode, list_for_each_entry_safe(listnode, tmplistnode,
&sst_drv_ctx->memcpy_list, memcpylist) { &sst_drv_ctx->memcpy_list, memcpylist) {
list_del(&listnode->memcpylist); list_del(&listnode->memcpylist);
kfree(listnode); kfree(listnode);
} }
}
} }
static int sst_cache_and_parse_fw(struct intel_sst_drv *sst, static int sst_cache_and_parse_fw(struct intel_sst_drv *sst,
......
...@@ -1509,12 +1509,10 @@ int skl_platform_unregister(struct device *dev) ...@@ -1509,12 +1509,10 @@ int skl_platform_unregister(struct device *dev)
struct skl_dev *skl = bus_to_skl(bus); struct skl_dev *skl = bus_to_skl(bus);
struct skl_module_deferred_bind *modules, *tmp; struct skl_module_deferred_bind *modules, *tmp;
if (!list_empty(&skl->bind_list)) {
list_for_each_entry_safe(modules, tmp, &skl->bind_list, node) { list_for_each_entry_safe(modules, tmp, &skl->bind_list, node) {
list_del(&modules->node); list_del(&modules->node);
kfree(modules); kfree(modules);
} }
}
kfree(skl->dais); kfree(skl->dais);
......
...@@ -3773,7 +3773,6 @@ void skl_tplg_exit(struct snd_soc_component *component, struct hdac_bus *bus) ...@@ -3773,7 +3773,6 @@ void skl_tplg_exit(struct snd_soc_component *component, struct hdac_bus *bus)
struct skl_dev *skl = bus_to_skl(bus); struct skl_dev *skl = bus_to_skl(bus);
struct skl_pipeline *ppl, *tmp; struct skl_pipeline *ppl, *tmp;
if (!list_empty(&skl->ppl_list))
list_for_each_entry_safe(ppl, tmp, &skl->ppl_list, node) list_for_each_entry_safe(ppl, tmp, &skl->ppl_list, node)
list_del(&ppl->node); list_del(&ppl->node);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment