[PATCH] lockdep: register_lock_class() fix
commit70e4506765602cca047cfa31933836e354c61a63
authorIngo Molnar <mingo@elte.hu>
Thu, 7 Dec 2006 04:40:50 +0000 (6 20:40 -0800)
committerLinus Torvalds <torvalds@woody.osdl.org>
Thu, 7 Dec 2006 16:39:46 +0000 (7 08:39 -0800)
treeb490e5066404eab1ec7cf5147521c0bd53226b07
parent72be2ccfff0e0e332b32f7ef8372890e39b7c4cb
[PATCH] lockdep: register_lock_class() fix

The hash_lock must only ever be taken with irqs disabled.  This happens in
all the important places, except one codepath: register_lock_class().  The
race should trigger rarely because register_lock_class() is quite rare and
single-threaded (happens during init most of the time).

The fix is to disable irqs.

( bug found live in -rt: there preemption is alot more agressive and
  preempting with the hash-lock held caused a lockup.)

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