diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2019-05-17 23:22:34 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2019-05-24 08:41:59 +0200 |
commit | 978315462d3ea3cf6cfacd34c563ec1eb02a3aa5 (patch) | |
tree | 8ecfc6fe36029250cca2a7442df360c429876046 /kernel/locking | |
parent | 54dee406374ce8adb352c48e175176247cb8db7c (diff) | |
download | linux-stable-978315462d3ea3cf6cfacd34c563ec1eb02a3aa5.tar.gz linux-stable-978315462d3ea3cf6cfacd34c563ec1eb02a3aa5.tar.bz2 linux-stable-978315462d3ea3cf6cfacd34c563ec1eb02a3aa5.zip |
locking/lockdep: Don't complain about incorrect name for no validate class
It is possible to ignore the validation for a certain lock by using:
lockdep_set_novalidate_class()
on it. Each invocation will assign a new name to the class it created
for created __lockdep_no_validate__. That means that once
lockdep_set_novalidate_class() has been used on two locks then
class->name won't match lock->name for the first lock triggering the
warning.
So ignore changed non-matching ->name pointer for the special
__lockdep_no_validate__ class.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will.deacon@arm.com>
Link: http://lkml.kernel.org/r/20190517212234.32611-1-bigeasy@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/locking')
-rw-r--r-- | kernel/locking/lockdep.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c index c47788fa85f9..6b283b4f87aa 100644 --- a/kernel/locking/lockdep.c +++ b/kernel/locking/lockdep.c @@ -732,7 +732,8 @@ look_up_lock_class(const struct lockdep_map *lock, unsigned int subclass) * Huh! same key, different name? Did someone trample * on some memory? We're most confused. */ - WARN_ON_ONCE(class->name != lock->name); + WARN_ON_ONCE(class->name != lock->name && + lock->key != &__lockdep_no_validate__); return class; } } |