]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/char/applicom.c
drivers: autoconvert trivial BKL users to private mutex
[net-next-2.6.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;
 }