summaryrefslogtreecommitdiff
path: root/include/linux/rwsem.h
diff options
context:
space:
mode:
authorMarc Zyngier <marc.zyngier@arm.com>2013-02-11 19:03:52 +0000
committerMarc Zyngier <marc.zyngier@arm.com>2013-02-11 19:03:52 +0000
commit9ae9e2535d7dd1c21d6a7db1a7f2fc507a5e4080 (patch)
treef059571830a159f05b8cdf4ec354b01ca7d6bc45 /include/linux/rwsem.h
parent75431f9d7335daf7fb9e72b3a1539ce610142618 (diff)
parent9e02e394c7d7fdc2570a73fb7fc6da3c79f6db2a (diff)
Merge branch 'for-arm-soc/arch-timers' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into kvm-arm/timer
Diffstat (limited to 'include/linux/rwsem.h')
-rw-r--r--include/linux/rwsem.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/rwsem.h b/include/linux/rwsem.h
index 54bd7cd7ecbd..8da67d625e13 100644
--- a/include/linux/rwsem.h
+++ b/include/linux/rwsem.h
@@ -125,8 +125,17 @@ extern void downgrade_write(struct rw_semaphore *sem);
*/
extern void down_read_nested(struct rw_semaphore *sem, int subclass);
extern void down_write_nested(struct rw_semaphore *sem, int subclass);
+extern void _down_write_nest_lock(struct rw_semaphore *sem, struct lockdep_map *nest_lock);
+
+# define down_write_nest_lock(sem, nest_lock) \
+do { \
+ typecheck(struct lockdep_map *, &(nest_lock)->dep_map); \
+ _down_write_nest_lock(sem, &(nest_lock)->dep_map); \
+} while (0);
+
#else
# define down_read_nested(sem, subclass) down_read(sem)
+# define down_write_nest_lock(sem, nest_lock) down_write(sem)
# define down_write_nested(sem, subclass) down_write(sem)
#endif