summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorFlorian Westphal <fw@strlen.de>2026-07-22 12:27:48 +0200
committerHerbert Xu <herbert@gondor.apana.org.au>2026-07-30 17:30:50 +1000
commit1132c38927886259c694f77cd74fc577c2216eeb (patch)
tree992e1d86a89396c6b5feb696f46a7c9008e57075 /lib
parent360f2974fcea49c61f6d6f81554741a9eeee7168 (diff)
rhashtable: fix false-positive lockdep splat on rhltable destruction
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>
Diffstat (limited to 'lib')
-rw-r--r--lib/rhashtable.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/rhashtable.c b/lib/rhashtable.c
index d459bef245f4..8b2c405e7a66 100644
--- a/lib/rhashtable.c
+++ b/lib/rhashtable.c
@@ -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);
}