From: Ingo Molnar Clear all the chains during lockdep_reset(). This fixes some locking-selftest false positives i saw on -rt. (never saw those on mainline though, but it could happen.) Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton --- kernel/lockdep.c | 3 +++ 1 file changed, 3 insertions(+) diff -puN kernel/lockdep.c~lockdep-improve-lockdep_reset kernel/lockdep.c --- a/kernel/lockdep.c~lockdep-improve-lockdep_reset +++ a/kernel/lockdep.c @@ -2437,6 +2437,7 @@ EXPORT_SYMBOL_GPL(lock_release); void lockdep_reset(void) { unsigned long flags; + int i; raw_local_irq_save(flags); current->curr_chain_key = 0; @@ -2447,6 +2448,8 @@ void lockdep_reset(void) nr_softirq_chains = 0; nr_process_chains = 0; debug_locks = 1; + for (i = 0; i < CHAINHASH_SIZE; i++) + INIT_LIST_HEAD(chainhash_table + i); raw_local_irq_restore(flags); } _