From 8ce3b36a9b2f7e516ca6f3b1a9ae8909e59b8e84 Mon Sep 17 00:00:00 2001 From: Jesse Gross Date: Sat, 19 Nov 2011 16:21:37 -0800 Subject: [PATCH] --- yaml --- r: 278334 b: refs/heads/master c: b4e16611c4e1cd98765269c8fdaf43f96baa57b1 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/include/linux/genetlink.h | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index d0a77487c258..44254764cb32 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 86b1309c7e411b7c25dc0dc7a092582a4d291044 +refs/heads/master: b4e16611c4e1cd98765269c8fdaf43f96baa57b1 diff --git a/trunk/include/linux/genetlink.h b/trunk/include/linux/genetlink.h index 59311adfb0e0..73c28dea10ae 100644 --- a/trunk/include/linux/genetlink.h +++ b/trunk/include/linux/genetlink.h @@ -89,6 +89,27 @@ extern void genl_unlock(void); extern int lockdep_genl_is_held(void); #endif +/** + * rcu_dereference_genl - rcu_dereference with debug checking + * @p: The pointer to read, prior to dereferencing + * + * Do an rcu_dereference(p), but check caller either holds rcu_read_lock() + * or genl mutex. Note : Please prefer genl_dereference() or rcu_dereference() + */ +#define rcu_dereference_genl(p) \ + rcu_dereference_check(p, lockdep_genl_is_held()) + +/** + * genl_dereference - fetch RCU pointer when updates are prevented by genl mutex + * @p: The pointer to read, prior to dereferencing + * + * Return the value of the specified RCU-protected pointer, but omit + * both the smp_read_barrier_depends() and the ACCESS_ONCE(), because + * caller holds genl mutex. + */ +#define genl_dereference(p) \ + rcu_dereference_protected(p, lockdep_genl_is_held()) + #endif /* __KERNEL__ */ #endif /* __LINUX_GENERIC_NETLINK_H */