All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jesse Gross <jesse-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>
To: "David S. Miller" <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
Cc: dev-yBygre7rU0TnMu66kgdUjQ@public.gmane.org,
	netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: [PATCH v3 3/6] genetlink: Add rcu_dereference_genl and genl_dereference.
Date: Sat,  3 Dec 2011 10:38:48 -0800	[thread overview]
Message-ID: <1322937531-8071-4-git-send-email-jesse@nicira.com> (raw)
In-Reply-To: <1322937531-8071-1-git-send-email-jesse-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>

This adds rcu_dereference_genl and genl_dereference, which are genl
variants of the RTNL functions to enforce proper locking with lockdep
and sparse.

Signed-off-by: Jesse Gross <jesse-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>
---
v3: Unchanged.
v2: New patch.
---
 include/linux/genetlink.h |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/include/linux/genetlink.h b/include/linux/genetlink.h
index 59311ad..73c28de 100644
--- a/include/linux/genetlink.h
+++ b/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 */
-- 
1.7.5.4

  parent reply	other threads:[~2011-12-03 18:38 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-03 18:38 [GIT PULL v3] Open vSwitch Jesse Gross
     [not found] ` <1322937531-8071-1-git-send-email-jesse-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>
2011-12-03 18:38   ` [PATCH v3 1/6] genetlink: Add genl_notify() Jesse Gross
2011-12-03 18:38   ` [PATCH v3 2/6] genetlink: Add lockdep_genl_is_held() Jesse Gross
2011-12-03 18:38   ` Jesse Gross [this message]
2011-12-03 18:38   ` [PATCH v3 4/6] vlan: Move vlan_set_encap_proto() to vlan header file Jesse Gross
2011-12-03 18:38   ` [PATCH v3 5/6] ipv6: Add fragment reporting to ipv6_skip_exthdr() Jesse Gross
2011-12-03 18:38   ` [PATCH v3 6/6] net: Add Open vSwitch kernel components Jesse Gross
2011-12-04  4:37   ` [GIT PULL v3] Open vSwitch David Miller
2011-12-05  3:32   ` Zhi Yong Wu
     [not found]     ` <CAEH94LiXLAKFWkDG5VBo80rFTfXMnxn1=2aEb5qOieBUnoYRyA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-12-05 17:37       ` Jesse Gross
     [not found]         ` <CAEP_g=-SAdXf33qP9Y=wS0QkG1OKBVXFBHTYgqD+8HgZznbLuQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-12-06  2:12           ` Zhi Yong Wu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1322937531-8071-4-git-send-email-jesse@nicira.com \
    --to=jesse-l0m0p4e3n4lqt0dzr+alfa@public.gmane.org \
    --cc=davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org \
    --cc=dev-yBygre7rU0TnMu66kgdUjQ@public.gmane.org \
    --cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.