diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-07-30 21:14:08 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-08-07 08:31:10 -0400 |
commit | ff9bf4b34104955017822e9bc42aeeb526ee2a80 (patch) | |
tree | 661b290dc1a3d0189bc82b1e8921e90ef22a6e97 /kernel | |
parent | e61dd678601eac53d501dda1eb1bcffec7b11bd6 (diff) | |
download | lwn-ff9bf4b34104955017822e9bc42aeeb526ee2a80.tar.gz lwn-ff9bf4b34104955017822e9bc42aeeb526ee2a80.zip |
lockdep: Fix lockdep_set_notrack_class() for CONFIG_LOCK_STAT
We won't find a contended lock if it's not being tracked.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/locking/lockdep.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c index 58c88220a478..0349f957e672 100644 --- a/kernel/locking/lockdep.c +++ b/kernel/locking/lockdep.c @@ -5936,6 +5936,9 @@ __lock_contended(struct lockdep_map *lock, unsigned long ip) if (DEBUG_LOCKS_WARN_ON(!depth)) return; + if (unlikely(lock->key == &__lockdep_no_track__)) + return; + hlock = find_held_lock(curr, lock, depth, &i); if (!hlock) { print_lock_contention_bug(curr, lock, ip); @@ -5978,6 +5981,9 @@ __lock_acquired(struct lockdep_map *lock, unsigned long ip) if (DEBUG_LOCKS_WARN_ON(!depth)) return; + if (unlikely(lock->key == &__lockdep_no_track__)) + return; + hlock = find_held_lock(curr, lock, depth, &i); if (!hlock) { print_lock_contention_bug(curr, lock, _RET_IP_); |