aboutsummaryrefslogtreecommitdiffstats
path: root/net/netfilter/nfnetlink.c
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2014-02-18 18:06:48 +0000
committerPablo Neira Ayuso <pablo@netfilter.org>2014-02-25 11:29:21 +0100
commit0eb5db7ad302a24fe6f0eb4bfd235357047a28db (patch)
tree70ab0a2618925c66700ed7f7e47fe70793c550b4 /net/netfilter/nfnetlink.c
parentnetfilter: ip_set: rename nfnl_dereference()/nfnl_set() (diff)
downloadlinux-dev-0eb5db7ad302a24fe6f0eb4bfd235357047a28db.tar.xz
linux-dev-0eb5db7ad302a24fe6f0eb4bfd235357047a28db.zip
netfilter: nfnetlink: add rcu_dereference_protected() helpers
Add a lockdep_nfnl_is_held() function and a nfnl_dereference() macro for RCU dereferences protected by a NFNL subsystem mutex. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net/netfilter/nfnetlink.c')
-rw-r--r--net/netfilter/nfnetlink.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/net/netfilter/nfnetlink.c b/net/netfilter/nfnetlink.c
index 046aa13b4fea..e8138da4c14f 100644
--- a/net/netfilter/nfnetlink.c
+++ b/net/netfilter/nfnetlink.c
@@ -61,6 +61,14 @@ void nfnl_unlock(__u8 subsys_id)
}
EXPORT_SYMBOL_GPL(nfnl_unlock);
+#ifdef CONFIG_PROVE_LOCKING
+int lockdep_nfnl_is_held(u8 subsys_id)
+{
+ return lockdep_is_held(&table[subsys_id].mutex);
+}
+EXPORT_SYMBOL_GPL(lockdep_nfnl_is_held);
+#endif
+
int nfnetlink_subsys_register(const struct nfnetlink_subsystem *n)
{
nfnl_lock(n->subsys_id);