]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
rhashtable: Use rcu_dereference_all and rcu_dereference_all_check
authorHerbert Xu <herbert@gondor.apana.org.au>
Tue, 9 Sep 2025 09:50:56 +0000 (17:50 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Sat, 20 Sep 2025 12:21:03 +0000 (20:21 +0800)
commitbee8a520eb84950193d0566ea2c2e46406a4b6ce
tree05d57af231a42ea997165138038b75362986862d
parentf75f66683ded09f7135aef2e763c245a07c8271a
rhashtable: Use rcu_dereference_all and rcu_dereference_all_check

Add rcu_dereference_all and rcu_dereference_all_check so that
library code such as rhashtable can be used with any RCU variant.

As it stands rcu_dereference is used within rashtable, which
creates false-positive warnings if the user calls it from another
RCU context, such as preempt_disable().

Use the rcu_dereference_all and rcu_dereference_all_check calls
in rhashtable to suppress these warnings.

Also replace the rcu_dereference_raw calls in the list iterators
with rcu_dereference_all to uncover buggy calls.

Reported-by: Menglong Dong <dongml2@chinatelecom.cn>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Reviewed-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
include/linux/rcupdate.h
include/linux/rhashtable.h