Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 179ccc0a authored by Herbert Xu's avatar Herbert Xu Committed by David S. Miller
Browse files

rhashtable: Kill harmless RCU warning in rhashtable_walk_init



The commit c6ff5268 ("rhashtable:
Fix walker list corruption") causes a suspicious RCU usage warning
because we no longer hold ht->mutex when we dereference ht->tbl.

However, this is a false positive because we now hold ht->lock
which also guarantees that ht->tbl won't disppear from under us.

This patch kills the warning by using rcu_dereference_protected.

Reported-by: default avatarkernel test robot <ying.huang@linux.intel.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e905eabc
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -519,7 +519,8 @@ int rhashtable_walk_init(struct rhashtable *ht, struct rhashtable_iter *iter)
		return -ENOMEM;

	spin_lock(&ht->lock);
	iter->walker->tbl = rht_dereference(ht->tbl, ht);
	iter->walker->tbl =
		rcu_dereference_protected(ht->tbl, lockdep_is_held(&ht->lock));
	list_add(&iter->walker->list, &iter->walker->tbl->walkers);
	spin_unlock(&ht->lock);