]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
rhashtable: fix false-positive lockdep splat on rhltable destruction
authorFlorian Westphal <fw@strlen.de>
Wed, 22 Jul 2026 10:27:48 +0000 (12:27 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 30 Jul 2026 07:30:50 +0000 (17:30 +1000)
Blamed commit removed ht->mutex usage during destruction but forgot to
switch rhashtable_free_one() to rcu_dereference_raw(), this triggers a
lockdep splat when an rhltable gets zapped.

Fixes: 09ae540e1d5c ("rhashtable: drop ht->mutex in rhashtable_free_and_destroy()")
Signed-off-by: Florian Westphal <fw@strlen.de>
Reviewed-by: Mikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
lib/rhashtable.c

index d459bef245f4a7dc5b2977020f6d54b58627acc0..8b2c405e7a667efa9a8d117de3549fae45181f95 100644 (file)
@@ -1261,7 +1261,7 @@ static void rhashtable_free_one(struct rhashtable *ht, struct rhash_head *obj,
        list = container_of(obj, struct rhlist_head, rhead);
        do {
                obj = &list->rhead;
-               list = rht_dereference(list->next, ht);
+               list = rcu_dereference_raw(list->next);
                free_fn(rht_obj(ht, obj), arg);
        } while (list);
 }