summaryrefslogtreecommitdiff
path: root/include/linux/rwlock_rt.h
diff options
context:
space:
mode:
authorJakub Kicinski <kuba@kernel.org>2022-01-27 12:54:16 -0800
committerJakub Kicinski <kuba@kernel.org>2022-01-27 12:54:16 -0800
commit72d044e4bfa6bd9096536e2e1c62aecfe1a525e4 (patch)
tree0e408f181f5c704ff43cd006f4643c339e04aff1 /include/linux/rwlock_rt.h
parente2cf07654efb0fd7bbcb475c6f74be7b5755a8fd (diff)
parent23a46422c56144939c091c76cf389aa863ce9c18 (diff)
downloadlinux-next-72d044e4bfa6bd9096536e2e1c62aecfe1a525e4.tar.gz
linux-next-72d044e4bfa6bd9096536e2e1c62aecfe1a525e4.zip
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
No conflicts. Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include/linux/rwlock_rt.h')
-rw-r--r--include/linux/rwlock_rt.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/linux/rwlock_rt.h b/include/linux/rwlock_rt.h
index 49c1f3842ed5..8544ff05e594 100644
--- a/include/linux/rwlock_rt.h
+++ b/include/linux/rwlock_rt.h
@@ -28,6 +28,7 @@ extern void rt_read_lock(rwlock_t *rwlock);
extern int rt_read_trylock(rwlock_t *rwlock);
extern void rt_read_unlock(rwlock_t *rwlock);
extern void rt_write_lock(rwlock_t *rwlock);
+extern void rt_write_lock_nested(rwlock_t *rwlock, int subclass);
extern int rt_write_trylock(rwlock_t *rwlock);
extern void rt_write_unlock(rwlock_t *rwlock);
@@ -83,6 +84,15 @@ static __always_inline void write_lock(rwlock_t *rwlock)
rt_write_lock(rwlock);
}
+#ifdef CONFIG_DEBUG_LOCK_ALLOC
+static __always_inline void write_lock_nested(rwlock_t *rwlock, int subclass)
+{
+ rt_write_lock_nested(rwlock, subclass);
+}
+#else
+#define write_lock_nested(lock, subclass) rt_write_lock(((void)(subclass), (lock)))
+#endif
+
static __always_inline void write_lock_bh(rwlock_t *rwlock)
{
local_bh_disable();