hlist_add_tail_rcu disable sparse warning
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: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
This commit is contained in:
parent
d1e4f01d09
commit
48ac34666f
|
@ -509,7 +509,8 @@ static inline void hlist_add_tail_rcu(struct hlist_node *n,
|
||||||
{
|
{
|
||||||
struct hlist_node *i, *last = NULL;
|
struct hlist_node *i, *last = NULL;
|
||||||
|
|
||||||
for (i = hlist_first_rcu(h); i; i = hlist_next_rcu(i))
|
/* Note: write side code, so rcu accessors are not needed. */
|
||||||
|
for (i = h->first; i; i = i->next)
|
||||||
last = i;
|
last = i;
|
||||||
|
|
||||||
if (last) {
|
if (last) {
|
||||||
|
|
Loading…
Reference in New Issue