git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
lib
/
kernel_lock.c
diff --git
a/lib/kernel_lock.c
b/lib/kernel_lock.c
index
cb5490e
..
e0fdfdd
100644
(file)
--- a/
lib/kernel_lock.c
+++ b/
lib/kernel_lock.c
@@
-14,7
+14,7
@@
* The 'big kernel semaphore'
*
* This mutex is taken and released recursively by lock_kernel()
* The 'big kernel semaphore'
*
* This mutex is taken and released recursively by lock_kernel()
- * and unlock_kernel(). It is transparently dropped and reaquired
+ * and unlock_kernel(). It is transparently dropped and rea
c
quired
* over schedule(). It is used to protect legacy code that hasn't
* been migrated to a proper locking design yet.
*
* over schedule(). It is used to protect legacy code that hasn't
* been migrated to a proper locking design yet.
*
@@
-92,7
+92,7
@@
void __lockfunc unlock_kernel(void)
* The 'big kernel lock'
*
* This spinlock is taken and released recursively by lock_kernel()
* The 'big kernel lock'
*
* This spinlock is taken and released recursively by lock_kernel()
- * and unlock_kernel(). It is transparently dropped and reaquired
+ * and unlock_kernel(). It is transparently dropped and rea
c
quired
* over schedule(). It is used to protect legacy code that hasn't
* been migrated to a proper locking design yet.
*
* over schedule(). It is used to protect legacy code that hasn't
* been migrated to a proper locking design yet.
*
@@
-177,7
+177,12
@@
static inline void __lock_kernel(void)
static inline void __unlock_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();
}
/*
}
/*