From: Ingo Molnar Date: Wed, 13 Dec 2006 08:34:40 +0000 (-0800) Subject: [PATCH] lockdep: improve lockdep_reset() X-Git-Tag: v2.6.20-rc1~89 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=23d95a03d63eff25118b50737006ce6e7c1b8def;p=linux-2.6 [PATCH] lockdep: improve lockdep_reset() 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 Signed-off-by: Linus Torvalds --- diff --git a/kernel/lockdep.c b/kernel/lockdep.c index 5ba2825bd4..77fa791f6f 100644 --- a/kernel/lockdep.c +++ b/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); }