]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/scsi/mpt2sas/mpt2sas_ctl.c
Merge branch 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl
[mv-sheeva.git] / drivers / scsi / mpt2sas / mpt2sas_ctl.c
index 9a4e584ae3ccf1fb9949ca4fa0fd74362868e275..40cb8aeb21b104303246667ab137d0d4670cada5 100644 (file)
@@ -51,7 +51,7 @@
 #include <linux/types.h>
 #include <linux/pci.h>
 #include <linux/delay.h>
-#include <linux/smp_lock.h>
+#include <linux/mutex.h>
 #include <linux/compat.h>
 #include <linux/poll.h>
 
@@ -61,6 +61,7 @@
 #include "mpt2sas_base.h"
 #include "mpt2sas_ctl.h"
 
+static DEFINE_MUTEX(_ctl_mutex);
 static struct fasync_struct *async_queue;
 static DECLARE_WAIT_QUEUE_HEAD(ctl_poll_wait);
 
@@ -2238,9 +2239,9 @@ _ctl_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 {
        long ret;
 
-       lock_kernel();
+       mutex_lock(&_ctl_mutex);
        ret = _ctl_ioctl_main(file, cmd, (void __user *)arg);
-       unlock_kernel();
+       mutex_unlock(&_ctl_mutex);
        return ret;
 }
 
@@ -2309,12 +2310,12 @@ _ctl_ioctl_compat(struct file *file, unsigned cmd, unsigned long arg)
 {
        long ret;
 
-       lock_kernel();
+       mutex_lock(&_ctl_mutex);
        if (cmd == MPT2COMMAND32)
                ret = _ctl_compat_mpt_command(file, cmd, arg);
        else
                ret = _ctl_ioctl_main(file, cmd, (void __user *)arg);
-       unlock_kernel();
+       mutex_unlock(&_ctl_mutex);
        return ret;
 }
 #endif