diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/lockdep.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h index 1314ca0f29b..14fec2a23b2 100644 --- a/include/linux/lockdep.h +++ b/include/linux/lockdep.h | |||
| @@ -202,7 +202,7 @@ extern int lockdep_internal(void); | |||
| 202 | */ | 202 | */ |
| 203 | 203 | ||
| 204 | extern void lockdep_init_map(struct lockdep_map *lock, const char *name, | 204 | extern void lockdep_init_map(struct lockdep_map *lock, const char *name, |
| 205 | struct lock_class_key *key); | 205 | struct lock_class_key *key, int subclass); |
| 206 | 206 | ||
| 207 | /* | 207 | /* |
| 208 | * Reinitialize a lock key - for cases where there is special locking or | 208 | * Reinitialize a lock key - for cases where there is special locking or |
| @@ -211,9 +211,14 @@ extern void lockdep_init_map(struct lockdep_map *lock, const char *name, | |||
| 211 | * or they are too narrow (they suffer from a false class-split): | 211 | * or they are too narrow (they suffer from a false class-split): |
| 212 | */ | 212 | */ |
| 213 | #define lockdep_set_class(lock, key) \ | 213 | #define lockdep_set_class(lock, key) \ |
| 214 | lockdep_init_map(&(lock)->dep_map, #key, key) | 214 | lockdep_init_map(&(lock)->dep_map, #key, key, 0) |
| 215 | #define lockdep_set_class_and_name(lock, key, name) \ | 215 | #define lockdep_set_class_and_name(lock, key, name) \ |
| 216 | lockdep_init_map(&(lock)->dep_map, name, key) | 216 | lockdep_init_map(&(lock)->dep_map, name, key, 0) |
| 217 | #define lockdep_set_class_and_subclass(lock, key, sub) \ | ||
| 218 | lockdep_init_map(&(lock)->dep_map, #key, key, sub) | ||
| 219 | #define lockdep_set_subclass(lock, sub) \ | ||
| 220 | lockdep_init_map(&(lock)->dep_map, #lock, \ | ||
| 221 | (lock)->dep_map.key, sub) | ||
| 217 | 222 | ||
| 218 | /* | 223 | /* |
| 219 | * Acquire a lock. | 224 | * Acquire a lock. |
| @@ -257,10 +262,12 @@ static inline int lockdep_internal(void) | |||
| 257 | # define lock_release(l, n, i) do { } while (0) | 262 | # define lock_release(l, n, i) do { } while (0) |
| 258 | # define lockdep_init() do { } while (0) | 263 | # define lockdep_init() do { } while (0) |
| 259 | # define lockdep_info() do { } while (0) | 264 | # define lockdep_info() do { } while (0) |
| 260 | # define lockdep_init_map(lock, name, key) do { (void)(key); } while (0) | 265 | # define lockdep_init_map(lock, name, key, sub) do { (void)(key); } while (0) |
| 261 | # define lockdep_set_class(lock, key) do { (void)(key); } while (0) | 266 | # define lockdep_set_class(lock, key) do { (void)(key); } while (0) |
| 262 | # define lockdep_set_class_and_name(lock, key, name) \ | 267 | # define lockdep_set_class_and_name(lock, key, name) \ |
| 263 | do { (void)(key); } while (0) | 268 | do { (void)(key); } while (0) |
| 269 | #define lockdep_set_class_and_subclass(lock, key, sub) \ | ||
| 270 | do { (void)(key); } while (0) | ||
| 264 | # define INIT_LOCKDEP | 271 | # define INIT_LOCKDEP |
| 265 | # define lockdep_reset() do { debug_locks = 1; } while (0) | 272 | # define lockdep_reset() do { debug_locks = 1; } while (0) |
| 266 | # define lockdep_free_key_range(start, size) do { } while (0) | 273 | # define lockdep_free_key_range(start, size) do { } while (0) |
