diff options
author | Julia Lawall <Julia.Lawall@inria.fr> | 2020-07-26 13:58:26 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2020-07-31 00:38:39 +0300 |
commit | a383308e50244a28fe927b9c1acbe0a963bf186b (patch) | |
tree | 69075a2fd3d1ab94299e828cc91fc253a7ad70e8 /sound/soc/intel/atom/sst/sst_loader.c | |
parent | 39473c2cbd6e915abe4dac439f18b770d6ed1c2c (diff) | |
download | linux-a383308e50244a28fe927b9c1acbe0a963bf186b.tar.xz |
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>
Diffstat (limited to 'sound/soc/intel/atom/sst/sst_loader.c')
-rw-r--r-- | sound/soc/intel/atom/sst/sst_loader.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/sound/soc/intel/atom/sst/sst_loader.c b/sound/soc/intel/atom/sst/sst_loader.c index 8ad0ca70ec62..fc91a304256b 100644 --- a/sound/soc/intel/atom/sst/sst_loader.c +++ b/sound/soc/intel/atom/sst/sst_loader.c @@ -276,12 +276,10 @@ void sst_memcpy_free_resources(struct intel_sst_drv *sst_drv_ctx) struct sst_memcpy_list *listnode, *tmplistnode; /* Free the list */ - if (!list_empty(&sst_drv_ctx->memcpy_list)) { - list_for_each_entry_safe(listnode, tmplistnode, - &sst_drv_ctx->memcpy_list, memcpylist) { - list_del(&listnode->memcpylist); - kfree(listnode); - } + list_for_each_entry_safe(listnode, tmplistnode, + &sst_drv_ctx->memcpy_list, memcpylist) { + list_del(&listnode->memcpylist); + kfree(listnode); } } |