Commit a383308e50244a28fe927b9c1acbe0a963bf186b
Committed by
Mark Brown
1 parent
39473c2cbd
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 <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>
Showing 3 changed files with 9 additions and 14 deletions Side-by-side Diff
sound/soc/intel/atom/sst/sst_loader.c
... | ... | @@ -276,12 +276,10 @@ |
276 | 276 | struct sst_memcpy_list *listnode, *tmplistnode; |
277 | 277 | |
278 | 278 | /* 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); | |
285 | 283 | } |
286 | 284 | } |
287 | 285 |
sound/soc/intel/skylake/skl-pcm.c
... | ... | @@ -1509,11 +1509,9 @@ |
1509 | 1509 | struct skl_dev *skl = bus_to_skl(bus); |
1510 | 1510 | struct skl_module_deferred_bind *modules, *tmp; |
1511 | 1511 | |
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); | |
1517 | 1515 | } |
1518 | 1516 | |
1519 | 1517 | kfree(skl->dais); |
sound/soc/intel/skylake/skl-topology.c
... | ... | @@ -3773,9 +3773,8 @@ |
3773 | 3773 | struct skl_dev *skl = bus_to_skl(bus); |
3774 | 3774 | struct skl_pipeline *ppl, *tmp; |
3775 | 3775 | |
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); | |
3779 | 3778 | |
3780 | 3779 | /* clean up topology */ |
3781 | 3780 | snd_soc_tplg_component_remove(component, SND_SOC_TPLG_INDEX_ALL); |