• Michael S. Tsirkin's avatar
    hlist_add_tail_rcu disable sparse warning · 48ac3466
    Michael S. Tsirkin authored
    sparse is unhappy about this code in hlist_add_tail_rcu:
    
            struct hlist_node *i, *last = NULL;
    
            for (i = hlist_first_rcu(h); i; i = hlist_next_rcu(i))
                    last = i;
    
    This is because hlist_next_rcu and hlist_next_rcu return
    __rcu pointers.
    
    It's a false positive - it's a write side primitive and so
    does not need to be called in a read side critical section.
    
    The following trivial patch disables the warning
    without changing the behaviour in any way.
    
    Note: __hlist_for_each_rcu would also remove the warning but it would be
    confusing since it calls rcu_derefence and is designed to run in the rcu
    read side critical section.
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Reviewed-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
    48ac3466
rculist.h 23.5 KB