]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/mtd/mtdchar.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux...
[net-next-2.6.git] / drivers / mtd / mtdchar.c
index b7ed09c579031fed9c77d2cbdca1035f3a3d5ba9..3eff1e562ad3c96ca168432b829d8dca5f36abea 100644 (file)
@@ -26,7 +26,7 @@
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/sched.h>
-#include <linux/smp_lock.h>
+#include <linux/mutex.h>
 #include <linux/backing-dev.h>
 #include <linux/compat.h>
 #include <linux/mount.h>
@@ -38,6 +38,7 @@
 #include <asm/uaccess.h>
 
 #define MTD_INODE_FS_MAGIC 0x11307854
+static DEFINE_MUTEX(mtd_mutex);
 static struct vfsmount *mtd_inode_mnt __read_mostly;
 
 /*
@@ -91,7 +92,7 @@ static int mtd_open(struct inode *inode, struct file *file)
        if ((file->f_mode & FMODE_WRITE) && (minor & 1))
                return -EACCES;
 
-       lock_kernel();
+       mutex_lock(&mtd_mutex);
        mtd = get_mtd_device(NULL, devnum);
 
        if (IS_ERR(mtd)) {
@@ -139,7 +140,7 @@ static int mtd_open(struct inode *inode, struct file *file)
        file->private_data = mfi;
 
 out:
-       unlock_kernel();
+       mutex_unlock(&mtd_mutex);
        return ret;
 } /* mtd_open */
 
@@ -967,9 +968,9 @@ static long mtd_unlocked_ioctl(struct file *file, u_int cmd, u_long arg)
 {
        int ret;
 
-       lock_kernel();
+       mutex_lock(&mtd_mutex);
        ret = mtd_ioctl(file, cmd, arg);
-       unlock_kernel();
+       mutex_unlock(&mtd_mutex);
 
        return ret;
 }
@@ -993,7 +994,7 @@ static long mtd_compat_ioctl(struct file *file, unsigned int cmd,
        void __user *argp = compat_ptr(arg);
        int ret = 0;
 
-       lock_kernel();
+       mutex_lock(&mtd_mutex);
 
        switch (cmd) {
        case MEMWRITEOOB32:
@@ -1028,7 +1029,7 @@ static long mtd_compat_ioctl(struct file *file, unsigned int cmd,
                ret = mtd_ioctl(file, cmd, (unsigned long)argp);
        }
 
-       unlock_kernel();
+       mutex_unlock(&mtd_mutex);
 
        return ret;
 }