diff options
Diffstat (limited to 'include/linux/mutex.h')
| -rw-r--r-- | include/linux/mutex.h | 9 | 
1 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/mutex.h b/include/linux/mutex.h index c75471db576..a940fe435ac 100644 --- a/include/linux/mutex.h +++ b/include/linux/mutex.h @@ -132,6 +132,7 @@ static inline int mutex_is_locked(struct mutex *lock)   */  #ifdef CONFIG_DEBUG_LOCK_ALLOC  extern void mutex_lock_nested(struct mutex *lock, unsigned int subclass); +extern void _mutex_lock_nest_lock(struct mutex *lock, struct lockdep_map *nest_lock);  extern int __must_check mutex_lock_interruptible_nested(struct mutex *lock,  					unsigned int subclass);  extern int __must_check mutex_lock_killable_nested(struct mutex *lock, @@ -140,6 +141,13 @@ extern int __must_check mutex_lock_killable_nested(struct mutex *lock,  #define mutex_lock(lock) mutex_lock_nested(lock, 0)  #define mutex_lock_interruptible(lock) mutex_lock_interruptible_nested(lock, 0)  #define mutex_lock_killable(lock) mutex_lock_killable_nested(lock, 0) + +#define mutex_lock_nest_lock(lock, nest_lock)				\ +do {									\ +	typecheck(struct lockdep_map *, &(nest_lock)->dep_map);		\ +	_mutex_lock_nest_lock(lock, &(nest_lock)->dep_map);		\ +} while (0) +  #else  extern void mutex_lock(struct mutex *lock);  extern int __must_check mutex_lock_interruptible(struct mutex *lock); @@ -148,6 +156,7 @@ extern int __must_check mutex_lock_killable(struct mutex *lock);  # define mutex_lock_nested(lock, subclass) mutex_lock(lock)  # define mutex_lock_interruptible_nested(lock, subclass) mutex_lock_interruptible(lock)  # define mutex_lock_killable_nested(lock, subclass) mutex_lock_killable(lock) +# define mutex_lock_nest_lock(lock, nest_lock) mutex_lock(lock)  #endif  /*  |