228,9 → 228,9 |
unsigned int trylock:1; /* 16 bits */ |
|
unsigned int read:2; /* see lock_acquire() comment */ |
unsigned int check:2; /* see lock_acquire() comment */ |
unsigned int check:1; /* see lock_acquire() comment */ |
unsigned int hardirqs_off:1; |
unsigned int references:11; /* 32 bits */ |
unsigned int references:12; /* 32 bits */ |
}; |
|
/* |
241,7 → 241,7 |
extern void lockdep_reset(void); |
extern void lockdep_reset_lock(struct lockdep_map *lock); |
extern void lockdep_free_key_range(void *start, unsigned long size); |
extern void lockdep_sys_exit(void); |
extern asmlinkage void lockdep_sys_exit(void); |
|
extern void lockdep_off(void); |
extern void lockdep_on(void); |
279,7 → 279,7 |
(lock)->dep_map.key, sub) |
|
#define lockdep_set_novalidate_class(lock) \ |
lockdep_set_class(lock, &__lockdep_no_validate__) |
lockdep_set_class_and_name(lock, &__lockdep_no_validate__, #lock) |
/* |
* Compare locking classes |
*/ |
302,9 → 302,8 |
* |
* Values for check: |
* |
* 0: disabled |
* 1: simple checks (freeing, held-at-exit-time, etc.) |
* 2: full validation |
* 0: simple checks (freeing, held-at-exit-time, etc.) |
* 1: full validation |
*/ |
extern void lock_acquire(struct lockdep_map *lock, unsigned int subclass, |
int trylock, int read, int check, |
335,10 → 334,14 |
|
#define lockdep_depth(tsk) (debug_locks ? (tsk)->lockdep_depth : 0) |
|
#define lockdep_assert_held(l) WARN_ON(debug_locks && !lockdep_is_held(l)) |
#define lockdep_assert_held(l) do { \ |
WARN_ON(debug_locks && !lockdep_is_held(l)); \ |
} while (0) |
|
#else /* !LOCKDEP */ |
#define lockdep_recursing(tsk) ((tsk)->lockdep_recursion) |
|
#else /* !CONFIG_LOCKDEP */ |
|
static inline void lockdep_off(void) |
{ |
} |
384,7 → 387,7 |
|
#define lockdep_depth(tsk) (0) |
|
#define lockdep_assert_held(l) do { } while (0) |
#define lockdep_assert_held(l) do { (void)(l); } while (0) |
|
#define lockdep_recursing(tsk) (0) |
|
532,13 → 535,13 |
# define might_lock(lock) \ |
do { \ |
typecheck(struct lockdep_map *, &(lock)->dep_map); \ |
lock_acquire(&(lock)->dep_map, 0, 0, 0, 2, NULL, _THIS_IP_); \ |
lock_acquire(&(lock)->dep_map, 0, 0, 0, 1, NULL, _THIS_IP_); \ |
lock_release(&(lock)->dep_map, 0, _THIS_IP_); \ |
} while (0) |
# define might_lock_read(lock) \ |
do { \ |
typecheck(struct lockdep_map *, &(lock)->dep_map); \ |
lock_acquire(&(lock)->dep_map, 0, 0, 1, 2, NULL, _THIS_IP_); \ |
lock_acquire(&(lock)->dep_map, 0, 0, 1, 1, NULL, _THIS_IP_); \ |
lock_release(&(lock)->dep_map, 0, _THIS_IP_); \ |
} while (0) |
#else |