hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
kernel/tools/lib/lockdep/include/liblockdep/mutex.h
....@@ -7,6 +7,7 @@
77
88 struct liblockdep_pthread_mutex {
99 pthread_mutex_t mutex;
10
+ struct lock_class_key key;
1011 struct lockdep_map dep_map;
1112 };
1213
....@@ -27,11 +28,10 @@
2728 return pthread_mutex_init(&lock->mutex, __mutexattr);
2829 }
2930
30
-#define liblockdep_pthread_mutex_init(mutex, mutexattr) \
31
-({ \
32
- static struct lock_class_key __key; \
33
- \
34
- __mutex_init((mutex), #mutex, &__key, (mutexattr)); \
31
+#define liblockdep_pthread_mutex_init(mutex, mutexattr) \
32
+({ \
33
+ lockdep_register_key(&(mutex)->key); \
34
+ __mutex_init((mutex), #mutex, &(mutex)->key, (mutexattr)); \
3535 })
3636
3737 static inline int liblockdep_pthread_mutex_lock(liblockdep_pthread_mutex_t *lock)
....@@ -42,7 +42,7 @@
4242
4343 static inline int liblockdep_pthread_mutex_unlock(liblockdep_pthread_mutex_t *lock)
4444 {
45
- lock_release(&lock->dep_map, 0, (unsigned long)_RET_IP_);
45
+ lock_release(&lock->dep_map, (unsigned long)_RET_IP_);
4646 return pthread_mutex_unlock(&lock->mutex);
4747 }
4848
....@@ -54,6 +54,8 @@
5454
5555 static inline int liblockdep_pthread_mutex_destroy(liblockdep_pthread_mutex_t *lock)
5656 {
57
+ lockdep_reset_lock(&lock->dep_map);
58
+ lockdep_unregister_key(&lock->key);
5759 return pthread_mutex_destroy(&lock->mutex);
5860 }
5961