• Julia Lawall's avatar
    tm6000: drop unnecessary list_empty · 3c9c3902
    Julia Lawall authored
    list_for_each_entry 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 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, 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:
    (http://coccinelle.lip6.fr/)
    
    <smpl>
    @@
    expression x,e;
    iterator name list_for_each_entry;
    statement S;
    identifier i;
    @@
    
    -if (!(list_empty(x))) {
       list_for_each_entry(i,x,...) S
    - }
     ... when != i
    ? i = e
    </smpl>
    Signed-off-by: default avatarJulia Lawall <Julia.Lawall@inria.fr>
    Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
    3c9c3902
tm6000-core.c 25.7 KB