diff options
Diffstat (limited to 'include/linux/rwsem.h')
| -rw-r--r-- | include/linux/rwsem.h | 9 | 
1 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/rwsem.h b/include/linux/rwsem.h index 54bd7cd7ecb..8da67d625e1 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  |