]> Pileus Git - ~andy/linux/blobdiff - drivers/char/generic_nvram.c
Merge branch 'xen/dev-evtchn' into upstream/evtchn
[~andy/linux] / drivers / char / generic_nvram.c
index 82b5a88a82d77d5351d1b1d413c4b123a382544f..0e941b57482e7d1021d409320e9184148888412b 100644 (file)
@@ -19,7 +19,7 @@
 #include <linux/miscdevice.h>
 #include <linux/fcntl.h>
 #include <linux/init.h>
-#include <linux/smp_lock.h>
+#include <linux/mutex.h>
 #include <asm/uaccess.h>
 #include <asm/nvram.h>
 #ifdef CONFIG_PPC_PMAC
@@ -28,6 +28,7 @@
 
 #define NVRAM_SIZE     8192
 
+static DEFINE_MUTEX(nvram_mutex);
 static ssize_t nvram_len;
 
 static loff_t nvram_llseek(struct file *file, loff_t offset, int origin)
@@ -120,9 +121,9 @@ static long nvram_unlocked_ioctl(struct file *file, unsigned int cmd, unsigned l
 {
        int ret;
 
-       lock_kernel();
+       mutex_lock(&nvram_mutex);
        ret = nvram_ioctl(file, cmd, arg);
-       unlock_kernel();
+       mutex_unlock(&nvram_mutex);
 
        return ret;
 }