[PATCH] USB: convert a bunch of USB semaphores to mutexes
the patch below converts a bunch of semaphores-used-as-mutex in the USB code to mutexes Signed-off-by: Arjan van de Ven <arjan@infradead.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
35cce732d9
commit
4186ecf8ad
@@ -55,6 +55,7 @@
|
||||
#include <linux/init.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/lp.h>
|
||||
#include <linux/mutex.h>
|
||||
#undef DEBUG
|
||||
#include <linux/usb.h>
|
||||
|
||||
@@ -223,7 +224,7 @@ static int usblp_cache_device_id_string(struct usblp *usblp);
|
||||
|
||||
/* forward reference to make our lives easier */
|
||||
static struct usb_driver usblp_driver;
|
||||
static DECLARE_MUTEX(usblp_sem); /* locks the existence of usblp's */
|
||||
static DEFINE_MUTEX(usblp_mutex); /* locks the existence of usblp's */
|
||||
|
||||
/*
|
||||
* Functions for usblp control messages.
|
||||
@@ -351,7 +352,7 @@ static int usblp_open(struct inode *inode, struct file *file)
|
||||
if (minor < 0)
|
||||
return -ENODEV;
|
||||
|
||||
down (&usblp_sem);
|
||||
mutex_lock (&usblp_mutex);
|
||||
|
||||
retval = -ENODEV;
|
||||
intf = usb_find_interface(&usblp_driver, minor);
|
||||
@@ -399,7 +400,7 @@ static int usblp_open(struct inode *inode, struct file *file)
|
||||
}
|
||||
}
|
||||
out:
|
||||
up (&usblp_sem);
|
||||
mutex_unlock (&usblp_mutex);
|
||||
return retval;
|
||||
}
|
||||
|
||||
@@ -425,13 +426,13 @@ static int usblp_release(struct inode *inode, struct file *file)
|
||||
{
|
||||
struct usblp *usblp = file->private_data;
|
||||
|
||||
down (&usblp_sem);
|
||||
mutex_lock (&usblp_mutex);
|
||||
usblp->used = 0;
|
||||
if (usblp->present) {
|
||||
usblp_unlink_urbs(usblp);
|
||||
} else /* finish cleanup from disconnect */
|
||||
usblp_cleanup (usblp);
|
||||
up (&usblp_sem);
|
||||
mutex_unlock (&usblp_mutex);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1152,7 +1153,7 @@ static void usblp_disconnect(struct usb_interface *intf)
|
||||
|
||||
device_remove_file(&intf->dev, &dev_attr_ieee1284_id);
|
||||
|
||||
down (&usblp_sem);
|
||||
mutex_lock (&usblp_mutex);
|
||||
down (&usblp->sem);
|
||||
usblp->present = 0;
|
||||
usb_set_intfdata (intf, NULL);
|
||||
@@ -1166,7 +1167,7 @@ static void usblp_disconnect(struct usb_interface *intf)
|
||||
|
||||
if (!usblp->used)
|
||||
usblp_cleanup (usblp);
|
||||
up (&usblp_sem);
|
||||
mutex_unlock (&usblp_mutex);
|
||||
}
|
||||
|
||||
static struct usb_device_id usblp_ids [] = {
|
||||
|
||||
Reference in New Issue
Block a user