Merge branch 'for-linus' of git://gitorious.org/linux-omap-dss2/linux
[deliverable/linux.git] / drivers / char / applicom.c
index f4ae0e0fb631b522f1b02a0a4ea68e2f98df0897..e7ba774beda6b8598a47dd77faf52e5283437037 100644 (file)
@@ -26,7 +26,7 @@
 #include <linux/sched.h>
 #include <linux/slab.h>
 #include <linux/errno.h>
-#include <linux/smp_lock.h>
+#include <linux/mutex.h>
 #include <linux/miscdevice.h>
 #include <linux/pci.h>
 #include <linux/wait.h>
@@ -60,6 +60,7 @@
 #define PCI_DEVICE_ID_APPLICOM_PCI2000PFB     0x0003
 #endif
 
+static DEFINE_MUTEX(ac_mutex);
 static char *applicom_pci_devnames[] = {
        "PCI board",
        "PCI2000IBS / PCI2000CAN",
@@ -707,7 +708,7 @@ static long ac_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
        if (IS_ERR(adgl))
                return PTR_ERR(adgl);
 
-       lock_kernel();  
+       mutex_lock(&ac_mutex);  
        IndexCard = adgl->num_card-1;
         
        if(cmd != 6 && ((IndexCard >= MAX_BOARD) || !apbs[IndexCard].RamIO)) {
@@ -717,7 +718,7 @@ static long ac_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
                        warncount--;
                }
                kfree(adgl);
-               unlock_kernel();
+               mutex_unlock(&ac_mutex);
                return -EINVAL;
        }
 
@@ -835,7 +836,7 @@ static long ac_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
        }
        Dummy = readb(apbs[IndexCard].RamIO + VERS);
        kfree(adgl);
-       unlock_kernel();
+       mutex_unlock(&ac_mutex);
        return 0;
 }
 
This page took 0.025849 seconds and 5 git commands to generate.