git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'linus' into x86/urgent
[pandora-kernel.git]
/
arch
/
x86
/
kernel
/
cpu
/
mcheck
/
mce_64.c
diff --git
a/arch/x86/kernel/cpu/mcheck/mce_64.c
b/arch/x86/kernel/cpu/mcheck/mce_64.c
index
501ca1c
..
9874107
100644
(file)
--- a/
arch/x86/kernel/cpu/mcheck/mce_64.c
+++ b/
arch/x86/kernel/cpu/mcheck/mce_64.c
@@
-9,6
+9,7
@@
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/sched.h>
+#include <linux/smp_lock.h>
#include <linux/string.h>
#include <linux/rcupdate.h>
#include <linux/kallsyms.h>
#include <linux/string.h>
#include <linux/rcupdate.h>
#include <linux/kallsyms.h>
@@
-532,10
+533,12
@@
static int open_exclu; /* already open exclusive? */
static int mce_open(struct inode *inode, struct file *file)
{
static int mce_open(struct inode *inode, struct file *file)
{
+ lock_kernel();
spin_lock(&mce_state_lock);
if (open_exclu || (open_count && (file->f_flags & O_EXCL))) {
spin_unlock(&mce_state_lock);
spin_lock(&mce_state_lock);
if (open_exclu || (open_count && (file->f_flags & O_EXCL))) {
spin_unlock(&mce_state_lock);
+ unlock_kernel();
return -EBUSY;
}
return -EBUSY;
}
@@
-544,6
+547,7
@@
static int mce_open(struct inode *inode, struct file *file)
open_count++;
spin_unlock(&mce_state_lock);
open_count++;
spin_unlock(&mce_state_lock);
+ unlock_kernel();
return nonseekable_open(inode, file);
}
return nonseekable_open(inode, file);
}