diff options
author | Ingo Molnar <mingo@elte.hu> | 2006-07-03 00:24:54 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-07-03 15:27:04 -0700 |
commit | 8a25d5debff2daee280e83e09d8c25d67c26a972 (patch) | |
tree | 3bccfef9acb66fc62863bfd6c16493c5e8c8e394 /lib/kernel_lock.c | |
parent | 4ea2176dfa714882e88180b474e4cbcd888b70af (diff) | |
download | lwn-8a25d5debff2daee280e83e09d8c25d67c26a972.tar.gz lwn-8a25d5debff2daee280e83e09d8c25d67c26a972.zip |
[PATCH] lockdep: prove spinlock rwlock locking correctness
Use the lock validator framework to prove spinlock and rwlock locking
correctness.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'lib/kernel_lock.c')
-rw-r--r-- | lib/kernel_lock.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/kernel_lock.c b/lib/kernel_lock.c index e713e86811ae..e0fdfddb406e 100644 --- a/lib/kernel_lock.c +++ b/lib/kernel_lock.c @@ -177,7 +177,12 @@ static inline void __lock_kernel(void) static inline void __unlock_kernel(void) { - spin_unlock(&kernel_flag); + /* + * the BKL is not covered by lockdep, so we open-code the + * unlocking sequence (and thus avoid the dep-chain ops): + */ + _raw_spin_unlock(&kernel_flag); + preempt_enable(); } /* |