lockdep: handle chains involving classes defined in modules
Solve this by marking the classes as unused and not printing information about the unused classes. Reported-by: Eric Sesterhenn <snakebyte@gmx.de> Signed-off-by: Rabin Vincent <rabin@rab.in> Acked-by: Huang Ying <ying.huang@intel.com> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
7cd5a02f54
commit
8bfe0298f7
|
@ -3176,6 +3176,7 @@ static void zap_class(struct lock_class *class)
|
||||||
list_del_rcu(&class->hash_entry);
|
list_del_rcu(&class->hash_entry);
|
||||||
list_del_rcu(&class->lock_entry);
|
list_del_rcu(&class->lock_entry);
|
||||||
|
|
||||||
|
class->key = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int within(const void *addr, void *start, unsigned long size)
|
static inline int within(const void *addr, void *start, unsigned long size)
|
||||||
|
|
|
@ -201,6 +201,9 @@ static int lc_show(struct seq_file *m, void *v)
|
||||||
|
|
||||||
for (i = 0; i < chain->depth; i++) {
|
for (i = 0; i < chain->depth; i++) {
|
||||||
class = lock_chain_get_class(chain, i);
|
class = lock_chain_get_class(chain, i);
|
||||||
|
if (!class->key)
|
||||||
|
continue;
|
||||||
|
|
||||||
seq_printf(m, "[%p] ", class->key);
|
seq_printf(m, "[%p] ", class->key);
|
||||||
print_name(m, class);
|
print_name(m, class);
|
||||||
seq_puts(m, "\n");
|
seq_puts(m, "\n");
|
||||||
|
|
Loading…
Reference in a new issue