]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
lockdep: Fix lockdep_set_notrack_class() for CONFIG_LOCK_STAT
authorKent Overstreet <kent.overstreet@linux.dev>
Wed, 31 Jul 2024 01:14:08 +0000 (21:14 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Wed, 7 Aug 2024 12:31:10 +0000 (08:31 -0400)
We won't find a contended lock if it's not being tracked.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
kernel/locking/lockdep.c

index 58c88220a478ac59a00dc83be03ed260346559e6..0349f957e672da9ede0c3e6ff24892dffa8118e2 100644 (file)
@@ -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_);