aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/lockdep.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/lockdep.h')
-rw-r--r--include/linux/lockdep.h34
1 files changed, 18 insertions, 16 deletions
diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h
index e431d1d6eaf3..93a8cc02a033 100644
--- a/include/linux/lockdep.h
+++ b/include/linux/lockdep.h
@@ -211,6 +211,7 @@ struct held_lock {
211 u64 prev_chain_key; 211 u64 prev_chain_key;
212 unsigned long acquire_ip; 212 unsigned long acquire_ip;
213 struct lockdep_map *instance; 213 struct lockdep_map *instance;
214 struct lockdep_map *nest_lock;
214#ifdef CONFIG_LOCK_STAT 215#ifdef CONFIG_LOCK_STAT
215 u64 waittime_stamp; 216 u64 waittime_stamp;
216 u64 holdtime_stamp; 217 u64 holdtime_stamp;
@@ -297,7 +298,8 @@ extern void lockdep_init_map(struct lockdep_map *lock, const char *name,
297 * 2: full validation 298 * 2: full validation
298 */ 299 */
299extern void lock_acquire(struct lockdep_map *lock, unsigned int subclass, 300extern void lock_acquire(struct lockdep_map *lock, unsigned int subclass,
300 int trylock, int read, int check, unsigned long ip); 301 int trylock, int read, int check,
302 struct lockdep_map *nest_lock, unsigned long ip);
301 303
302extern void lock_release(struct lockdep_map *lock, int nested, 304extern void lock_release(struct lockdep_map *lock, int nested,
303 unsigned long ip); 305 unsigned long ip);
@@ -319,7 +321,7 @@ static inline void lockdep_on(void)
319{ 321{
320} 322}
321 323
322# define lock_acquire(l, s, t, r, c, i) do { } while (0) 324# define lock_acquire(l, s, t, r, c, n, i) do { } while (0)
323# define lock_release(l, n, i) do { } while (0) 325# define lock_release(l, n, i) do { } while (0)
324# define lock_set_subclass(l, s, i) do { } while (0) 326# define lock_set_subclass(l, s, i) do { } while (0)
325# define lockdep_init() do { } while (0) 327# define lockdep_init() do { } while (0)
@@ -407,9 +409,9 @@ static inline void print_irqtrace_events(struct task_struct *curr)
407 409
408#ifdef CONFIG_DEBUG_LOCK_ALLOC 410#ifdef CONFIG_DEBUG_LOCK_ALLOC
409# ifdef CONFIG_PROVE_LOCKING 411# ifdef CONFIG_PROVE_LOCKING
410# define spin_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 2, i) 412# define spin_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 2, NULL, i)
411# else 413# else
412# define spin_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 1, i) 414# define spin_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 1, NULL, i)
413# endif 415# endif
414# define spin_release(l, n, i) lock_release(l, n, i) 416# define spin_release(l, n, i) lock_release(l, n, i)
415#else 417#else
@@ -419,11 +421,11 @@ static inline void print_irqtrace_events(struct task_struct *curr)
419 421
420#ifdef CONFIG_DEBUG_LOCK_ALLOC 422#ifdef CONFIG_DEBUG_LOCK_ALLOC
421# ifdef CONFIG_PROVE_LOCKING 423# ifdef CONFIG_PROVE_LOCKING
422# define rwlock_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 2, i) 424# define rwlock_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 2, NULL, i)
423# define rwlock_acquire_read(l, s, t, i) lock_acquire(l, s, t, 2, 2, i) 425# define rwlock_acquire_read(l, s, t, i) lock_acquire(l, s, t, 2, 2, NULL, i)
424# else 426# else
425# define rwlock_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 1, i) 427# define rwlock_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 1, NULL, i)
426# define rwlock_acquire_read(l, s, t, i) lock_acquire(l, s, t, 2, 1, i) 428# define rwlock_acquire_read(l, s, t, i) lock_acquire(l, s, t, 2, 1, NULL, i)
427# endif 429# endif
428# define rwlock_release(l, n, i) lock_release(l, n, i) 430# define rwlock_release(l, n, i) lock_release(l, n, i)
429#else 431#else
@@ -434,9 +436,9 @@ static inline void print_irqtrace_events(struct task_struct *curr)
434 436
435#ifdef CONFIG_DEBUG_LOCK_ALLOC 437#ifdef CONFIG_DEBUG_LOCK_ALLOC
436# ifdef CONFIG_PROVE_LOCKING 438# ifdef CONFIG_PROVE_LOCKING
437# define mutex_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 2, i) 439# define mutex_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 2, NULL, i)
438# else 440# else
439# define mutex_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 1, i) 441# define mutex_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 1, NULL, i)
440# endif 442# endif
441# define mutex_release(l, n, i) lock_release(l, n, i) 443# define mutex_release(l, n, i) lock_release(l, n, i)
442#else 444#else
@@ -446,11 +448,11 @@ static inline void print_irqtrace_events(struct task_struct *curr)
446 448
447#ifdef CONFIG_DEBUG_LOCK_ALLOC 449#ifdef CONFIG_DEBUG_LOCK_ALLOC
448# ifdef CONFIG_PROVE_LOCKING 450# ifdef CONFIG_PROVE_LOCKING
449# define rwsem_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 2, i) 451# define rwsem_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 2, NULL, i)
450# define rwsem_acquire_read(l, s, t, i) lock_acquire(l, s, t, 1, 2, i) 452# define rwsem_acquire_read(l, s, t, i) lock_acquire(l, s, t, 1, 2, NULL, i)
451# else 453# else
452# define rwsem_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 1, i) 454# define rwsem_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 1, NULL, i)
453# define rwsem_acquire_read(l, s, t, i) lock_acquire(l, s, t, 1, 1, i) 455# define rwsem_acquire_read(l, s, t, i) lock_acquire(l, s, t, 1, 1, NULL, i)
454# endif 456# endif
455# define rwsem_release(l, n, i) lock_release(l, n, i) 457# define rwsem_release(l, n, i) lock_release(l, n, i)
456#else 458#else
@@ -461,9 +463,9 @@ static inline void print_irqtrace_events(struct task_struct *curr)
461 463
462#ifdef CONFIG_DEBUG_LOCK_ALLOC 464#ifdef CONFIG_DEBUG_LOCK_ALLOC
463# ifdef CONFIG_PROVE_LOCKING 465# ifdef CONFIG_PROVE_LOCKING
464# define map_acquire(l) lock_acquire(l, 0, 0, 0, 2, _THIS_IP_) 466# define map_acquire(l) lock_acquire(l, 0, 0, 0, 2, NULL, _THIS_IP_)
465# else 467# else
466# define map_acquire(l) lock_acquire(l, 0, 0, 0, 1, _THIS_IP_) 468# define map_acquire(l) lock_acquire(l, 0, 0, 0, 1, NULL, _THIS_IP_)
467# endif 469# endif
468# define map_release(l) lock_release(l, 1, _THIS_IP_) 470# define map_release(l) lock_release(l, 1, _THIS_IP_)
469#else 471#else