aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/gadget/printer.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/gadget/printer.c')
-rw-r--r--drivers/usb/gadget/printer.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/usb/gadget/printer.c b/drivers/usb/gadget/printer.c
index 4c3ac5c42237..cf241c371a71 100644
--- a/drivers/usb/gadget/printer.c
+++ b/drivers/usb/gadget/printer.c
@@ -25,7 +25,7 @@
25#include <linux/ioport.h> 25#include <linux/ioport.h>
26#include <linux/sched.h> 26#include <linux/sched.h>
27#include <linux/slab.h> 27#include <linux/slab.h>
28#include <linux/smp_lock.h> 28#include <linux/mutex.h>
29#include <linux/errno.h> 29#include <linux/errno.h>
30#include <linux/init.h> 30#include <linux/init.h>
31#include <linux/timer.h> 31#include <linux/timer.h>
@@ -70,6 +70,7 @@
70#define DRIVER_DESC "Printer Gadget" 70#define DRIVER_DESC "Printer Gadget"
71#define DRIVER_VERSION "2007 OCT 06" 71#define DRIVER_VERSION "2007 OCT 06"
72 72
73static DEFINE_MUTEX(printer_mutex);
73static const char shortname [] = "printer"; 74static const char shortname [] = "printer";
74static const char driver_desc [] = DRIVER_DESC; 75static const char driver_desc [] = DRIVER_DESC;
75 76
@@ -476,7 +477,7 @@ printer_open(struct inode *inode, struct file *fd)
476 unsigned long flags; 477 unsigned long flags;
477 int ret = -EBUSY; 478 int ret = -EBUSY;
478 479
479 lock_kernel(); 480 mutex_lock(&printer_mutex);
480 dev = container_of(inode->i_cdev, struct printer_dev, printer_cdev); 481 dev = container_of(inode->i_cdev, struct printer_dev, printer_cdev);
481 482
482 spin_lock_irqsave(&dev->lock, flags); 483 spin_lock_irqsave(&dev->lock, flags);
@@ -492,7 +493,7 @@ printer_open(struct inode *inode, struct file *fd)
492 spin_unlock_irqrestore(&dev->lock, flags); 493 spin_unlock_irqrestore(&dev->lock, flags);
493 494
494 DBG(dev, "printer_open returned %x\n", ret); 495 DBG(dev, "printer_open returned %x\n", ret);
495 unlock_kernel(); 496 mutex_unlock(&printer_mutex);
496 return ret; 497 return ret;
497} 498}
498 499
@@ -1346,7 +1347,7 @@ printer_unbind(struct usb_gadget *gadget)
1346 set_gadget_data(gadget, NULL); 1347 set_gadget_data(gadget, NULL);
1347} 1348}
1348 1349
1349static int __init 1350static int __ref
1350printer_bind(struct usb_gadget *gadget) 1351printer_bind(struct usb_gadget *gadget)
1351{ 1352{
1352 struct printer_dev *dev; 1353 struct printer_dev *dev;