diff --git a/kernel/lockdep.c b/kernel/lockdep.c
index 5ba2825bd46a0aed732820364f51a8e5b9e798e5..77fa791f6f31b87275dee6a566888edd9ba1d218 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);
 }