Re: [PATCH] locking/lockdep: Don't complain about wrong name for no validate class

From: Ingo Molnar
Date: Fri May 24 2019 - 02:44:30 EST



* Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> wrote:

> It is possible to ignore the validation for a certain log be using
> lockdep_set_novalidate_class()

s/log/lock
s/be/by

?

> 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.
>
> Ignoring changed non-matching ->name pointer for the
> __lockdep_no_validate__ class.
>
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
> ---
> kernel/locking/lockdep.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
> index d06190fa50822..38be69d344f7f 100644
> --- a/kernel/locking/lockdep.c
> +++ b/kernel/locking/lockdep.c
> @@ -731,7 +731,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__);

Looks good otherwise - applied.

Thanks,

Ingo