]> err.no Git - linux-2.6/commitdiff
[PATCH] lockdep: improve lockdep_reset()
authorIngo Molnar <mingo@elte.hu>
Wed, 13 Dec 2006 08:34:40 +0000 (00:34 -0800)
committerLinus Torvalds <torvalds@woody.osdl.org>
Wed, 13 Dec 2006 17:05:50 +0000 (09:05 -0800)
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 <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
kernel/lockdep.c

index 5ba2825bd46a0aed732820364f51a8e5b9e798e5..77fa791f6f31b87275dee6a566888edd9ba1d218 100644 (file)
@@ -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);
 }