aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/linux/srcu.h
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.ibm.com>2018-11-30 10:06:46 -0800
committerPaul E. McKenney <paulmck@linux.ibm.com>2019-01-25 15:36:40 -0800
commitc8ca1aa774b20f182733d1661f3b6aa3105338e7 (patch)
tree4bf5a3fd65d0e71fe2f1de535859dddd9c6214d7 /include/linux/srcu.h
parentMerge branches 'consolidate.2019.01.26a' and 'fwd.2019.01.26a' into HEAD (diff)
downloadwireguard-linux-c8ca1aa774b20f182733d1661f3b6aa3105338e7.tar.xz
wireguard-linux-c8ca1aa774b20f182733d1661f3b6aa3105338e7.zip
srcu: Check for invalid idx argument in srcu_read_unlock()
The current SRCU implementation has an idx argument of zero or one, and never anything else. This commit therefore adds a WARN_ON_ONCE() to complain if this restriction is violated. Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
Diffstat (limited to 'include/linux/srcu.h')
-rw-r--r--include/linux/srcu.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/srcu.h b/include/linux/srcu.h
index c614375cd264..33cf83b9bda8 100644
--- a/include/linux/srcu.h
+++ b/include/linux/srcu.h
@@ -223,6 +223,7 @@ srcu_read_lock_notrace(struct srcu_struct *ssp) __acquires(ssp)
static inline void srcu_read_unlock(struct srcu_struct *ssp, int idx)
__releases(ssp)
{
+ WARN_ON_ONCE(idx & ~0x1);
rcu_lock_release(&(ssp)->dep_map);
__srcu_read_unlock(ssp, idx);
}