• Julia Lawall's avatar
    ASoC: Intel: drop unnecessary list_empty · a383308e
    Julia Lawall authored
    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>
    a383308e
skl-pcm.c 39.7 KB