Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 208013
b: refs/heads/master
c: 925ce68
h: refs/heads/master
i:
  208011: 92ab299
v: v3
  • Loading branch information
Arnd Bergmann authored and Greg Kroah-Hartman committed Aug 10, 2010
1 parent b2e088a commit 90f5f3f
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 26 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 7c7e2d00435bd8129c4bacb73fe4a2d4db4e7d7c
refs/heads/master: 925ce689bb31960c839804c19ef38d676f1939b9
7 changes: 4 additions & 3 deletions trunk/drivers/usb/gadget/printer.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
#include <linux/ioport.h>
#include <linux/sched.h>
#include <linux/slab.h>
#include <linux/smp_lock.h>
#include <linux/mutex.h>
#include <linux/errno.h>
#include <linux/init.h>
#include <linux/timer.h>
Expand Down Expand Up @@ -70,6 +70,7 @@
#define DRIVER_DESC "Printer Gadget"
#define DRIVER_VERSION "2007 OCT 06"

static DEFINE_MUTEX(printer_mutex);
static const char shortname [] = "printer";
static const char driver_desc [] = DRIVER_DESC;

Expand Down Expand Up @@ -476,7 +477,7 @@ printer_open(struct inode *inode, struct file *fd)
unsigned long flags;
int ret = -EBUSY;

lock_kernel();
mutex_lock(&printer_mutex);
dev = container_of(inode->i_cdev, struct printer_dev, printer_cdev);

spin_lock_irqsave(&dev->lock, flags);
Expand All @@ -492,7 +493,7 @@ printer_open(struct inode *inode, struct file *fd)
spin_unlock_irqrestore(&dev->lock, flags);

DBG(dev, "printer_open returned %x\n", ret);
unlock_kernel();
mutex_unlock(&printer_mutex);
return ret;
}

Expand Down
15 changes: 8 additions & 7 deletions trunk/drivers/usb/misc/iowarrior.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/sched.h>
#include <linux/smp_lock.h>
#include <linux/mutex.h>
#include <linux/poll.h>
#include <linux/usb/iowarrior.h>

Expand Down Expand Up @@ -61,6 +61,7 @@ MODULE_DESCRIPTION(DRIVER_DESC);
MODULE_LICENSE("GPL");

/* Module parameters */
static DEFINE_MUTEX(iowarrior_mutex);
static int debug = 0;
module_param(debug, bool, 0644);
MODULE_PARM_DESC(debug, "debug=1 enables debugging messages");
Expand Down Expand Up @@ -493,7 +494,7 @@ static long iowarrior_ioctl(struct file *file, unsigned int cmd,
return -ENOMEM;

/* lock this object */
lock_kernel();
mutex_lock(&iowarrior_mutex);
mutex_lock(&dev->mutex);

/* verify that the device wasn't unplugged */
Expand Down Expand Up @@ -585,7 +586,7 @@ static long iowarrior_ioctl(struct file *file, unsigned int cmd,
error_out:
/* unlock the device */
mutex_unlock(&dev->mutex);
unlock_kernel();
mutex_unlock(&iowarrior_mutex);
kfree(buffer);
return retval;
}
Expand All @@ -602,12 +603,12 @@ static int iowarrior_open(struct inode *inode, struct file *file)

dbg("%s", __func__);

lock_kernel();
mutex_lock(&iowarrior_mutex);
subminor = iminor(inode);

interface = usb_find_interface(&iowarrior_driver, subminor);
if (!interface) {
unlock_kernel();
mutex_unlock(&iowarrior_mutex);
err("%s - error, can't find device for minor %d", __func__,
subminor);
return -ENODEV;
Expand All @@ -617,7 +618,7 @@ static int iowarrior_open(struct inode *inode, struct file *file)
dev = usb_get_intfdata(interface);
if (!dev) {
mutex_unlock(&iowarrior_open_disc_lock);
unlock_kernel();
mutex_unlock(&iowarrior_mutex);
return -ENODEV;
}

Expand All @@ -644,7 +645,7 @@ static int iowarrior_open(struct inode *inode, struct file *file)

out:
mutex_unlock(&dev->mutex);
unlock_kernel();
mutex_unlock(&iowarrior_mutex);
return retval;
}

Expand Down
15 changes: 8 additions & 7 deletions trunk/drivers/usb/misc/rio500.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
#include <linux/kernel.h>
#include <linux/signal.h>
#include <linux/sched.h>
#include <linux/smp_lock.h>
#include <linux/mutex.h>
#include <linux/errno.h>
#include <linux/random.h>
#include <linux/poll.h>
Expand Down Expand Up @@ -72,19 +72,20 @@ struct rio_usb_data {
struct mutex lock; /* general race avoidance */
};

static DEFINE_MUTEX(rio500_mutex);
static struct rio_usb_data rio_instance;

static int open_rio(struct inode *inode, struct file *file)
{
struct rio_usb_data *rio = &rio_instance;

/* against disconnect() */
lock_kernel();
mutex_lock(&rio500_mutex);
mutex_lock(&(rio->lock));

if (rio->isopen || !rio->present) {
mutex_unlock(&(rio->lock));
unlock_kernel();
mutex_unlock(&rio500_mutex);
return -EBUSY;
}
rio->isopen = 1;
Expand All @@ -94,7 +95,7 @@ static int open_rio(struct inode *inode, struct file *file)
mutex_unlock(&(rio->lock));

dev_info(&rio->rio_dev->dev, "Rio opened.\n");
unlock_kernel();
mutex_unlock(&rio500_mutex);

return 0;
}
Expand Down Expand Up @@ -491,7 +492,7 @@ static void disconnect_rio(struct usb_interface *intf)
struct rio_usb_data *rio = usb_get_intfdata (intf);

usb_set_intfdata (intf, NULL);
lock_kernel();
mutex_lock(&rio500_mutex);
if (rio) {
usb_deregister_dev(intf, &usb_rio_class);

Expand All @@ -501,7 +502,7 @@ static void disconnect_rio(struct usb_interface *intf)
/* better let it finish - the release will do whats needed */
rio->rio_dev = NULL;
mutex_unlock(&(rio->lock));
unlock_kernel();
mutex_unlock(&rio500_mutex);
return;
}
kfree(rio->ibuf);
Expand All @@ -512,7 +513,7 @@ static void disconnect_rio(struct usb_interface *intf)
rio->present = 0;
mutex_unlock(&(rio->lock));
}
unlock_kernel();
mutex_unlock(&rio500_mutex);
}

static const struct usb_device_id rio_table[] = {
Expand Down
16 changes: 8 additions & 8 deletions trunk/drivers/usb/misc/usblcd.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/smp_lock.h>
#include <linux/errno.h>
#include <linux/mutex.h>
#include <asm/uaccess.h>
Expand All @@ -30,6 +29,7 @@
#define IOCTL_GET_DRV_VERSION 2


static DEFINE_MUTEX(lcd_mutex);
static const struct usb_device_id id_table[] = {
{ .idVendor = 0x10D2, .match_flags = USB_DEVICE_ID_MATCH_VENDOR, },
{ },
Expand Down Expand Up @@ -74,12 +74,12 @@ static int lcd_open(struct inode *inode, struct file *file)
struct usb_interface *interface;
int subminor, r;

lock_kernel();
mutex_lock(&lcd_mutex);
subminor = iminor(inode);

interface = usb_find_interface(&lcd_driver, subminor);
if (!interface) {
unlock_kernel();
mutex_unlock(&lcd_mutex);
err ("USBLCD: %s - error, can't find device for minor %d",
__func__, subminor);
return -ENODEV;
Expand All @@ -89,7 +89,7 @@ static int lcd_open(struct inode *inode, struct file *file)
dev = usb_get_intfdata(interface);
if (!dev) {
mutex_unlock(&open_disc_mutex);
unlock_kernel();
mutex_unlock(&lcd_mutex);
return -ENODEV;
}

Expand All @@ -101,13 +101,13 @@ static int lcd_open(struct inode *inode, struct file *file)
r = usb_autopm_get_interface(interface);
if (r < 0) {
kref_put(&dev->kref, lcd_delete);
unlock_kernel();
mutex_unlock(&lcd_mutex);
return r;
}

/* save our object in the file's private structure */
file->private_data = dev;
unlock_kernel();
mutex_unlock(&lcd_mutex);

return 0;
}
Expand Down Expand Up @@ -164,14 +164,14 @@ static long lcd_ioctl(struct file *file, unsigned int cmd, unsigned long arg)

switch (cmd) {
case IOCTL_GET_HARD_VERSION:
lock_kernel();
mutex_lock(&lcd_mutex);
bcdDevice = le16_to_cpu((dev->udev)->descriptor.bcdDevice);
sprintf(buf,"%1d%1d.%1d%1d",
(bcdDevice & 0xF000)>>12,
(bcdDevice & 0xF00)>>8,
(bcdDevice & 0xF0)>>4,
(bcdDevice & 0xF));
unlock_kernel();
mutex_unlock(&lcd_mutex);
if (copy_to_user((void __user *)arg,buf,strlen(buf))!=0)
return -EFAULT;
break;
Expand Down

0 comments on commit 90f5f3f

Please sign in to comment.