|
@@ -3111,7 +3111,13 @@ static int match_held_lock(struct held_lock *hlock, struct lockdep_map *lock)
|
|
|
if (!class)
|
|
|
class = look_up_lock_class(lock, 0);
|
|
|
|
|
|
- if (DEBUG_LOCKS_WARN_ON(!class))
|
|
|
+ /*
|
|
|
+ * If look_up_lock_class() failed to find a class, we're trying
|
|
|
+ * to test if we hold a lock that has never yet been acquired.
|
|
|
+ * Clearly if the lock hasn't been acquired _ever_, we're not
|
|
|
+ * holding it either, so report failure.
|
|
|
+ */
|
|
|
+ if (!class)
|
|
|
return 0;
|
|
|
|
|
|
if (DEBUG_LOCKS_WARN_ON(!hlock->nest_lock))
|