Skip to content

Commit a383308

Browse files
JuliaLawallbroonie
authored andcommitted
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: Julia Lawall <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
1 parent 39473c2 commit a383308

File tree

3 files changed

+9
-14
lines changed

3 files changed

+9
-14
lines changed

sound/soc/intel/atom/sst/sst_loader.c

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -276,12 +276,10 @@ void sst_memcpy_free_resources(struct intel_sst_drv *sst_drv_ctx)
276276
struct sst_memcpy_list *listnode, *tmplistnode;
277277

278278
/* Free the list */
279-
if (!list_empty(&sst_drv_ctx->memcpy_list)) {
280-
list_for_each_entry_safe(listnode, tmplistnode,
281-
&sst_drv_ctx->memcpy_list, memcpylist) {
282-
list_del(&listnode->memcpylist);
283-
kfree(listnode);
284-
}
279+
list_for_each_entry_safe(listnode, tmplistnode,
280+
&sst_drv_ctx->memcpy_list, memcpylist) {
281+
list_del(&listnode->memcpylist);
282+
kfree(listnode);
285283
}
286284
}
287285

sound/soc/intel/skylake/skl-pcm.c

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1509,11 +1509,9 @@ int skl_platform_unregister(struct device *dev)
15091509
struct skl_dev *skl = bus_to_skl(bus);
15101510
struct skl_module_deferred_bind *modules, *tmp;
15111511

1512-
if (!list_empty(&skl->bind_list)) {
1513-
list_for_each_entry_safe(modules, tmp, &skl->bind_list, node) {
1514-
list_del(&modules->node);
1515-
kfree(modules);
1516-
}
1512+
list_for_each_entry_safe(modules, tmp, &skl->bind_list, node) {
1513+
list_del(&modules->node);
1514+
kfree(modules);
15171515
}
15181516

15191517
kfree(skl->dais);

sound/soc/intel/skylake/skl-topology.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3773,9 +3773,8 @@ void skl_tplg_exit(struct snd_soc_component *component, struct hdac_bus *bus)
37733773
struct skl_dev *skl = bus_to_skl(bus);
37743774
struct skl_pipeline *ppl, *tmp;
37753775

3776-
if (!list_empty(&skl->ppl_list))
3777-
list_for_each_entry_safe(ppl, tmp, &skl->ppl_list, node)
3778-
list_del(&ppl->node);
3776+
list_for_each_entry_safe(ppl, tmp, &skl->ppl_list, node)
3777+
list_del(&ppl->node);
37793778

37803779
/* clean up topology */
37813780
snd_soc_tplg_component_remove(component, SND_SOC_TPLG_INDEX_ALL);

0 commit comments

Comments
 (0)