diff options
Diffstat (limited to 'drivers/usb/gadget/printer.c')
-rw-r--r-- | drivers/usb/gadget/printer.c | 9 |
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 | ||
73 | static DEFINE_MUTEX(printer_mutex); | ||
73 | static const char shortname [] = "printer"; | 74 | static const char shortname [] = "printer"; |
74 | static const char driver_desc [] = DRIVER_DESC; | 75 | static 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 | ||
1349 | static int __init | 1350 | static int __ref |
1350 | printer_bind(struct usb_gadget *gadget) | 1351 | printer_bind(struct usb_gadget *gadget) |
1351 | { | 1352 | { |
1352 | struct printer_dev *dev; | 1353 | struct printer_dev *dev; |