|
@@ -462,6 +462,7 @@ printer_open(struct inode *inode, struct file *fd)
|
|
|
unsigned long flags;
|
|
|
int ret = -EBUSY;
|
|
|
|
|
|
+ lock_kernel();
|
|
|
dev = container_of(inode->i_cdev, struct printer_dev, printer_cdev);
|
|
|
|
|
|
spin_lock_irqsave(&dev->lock, flags);
|
|
@@ -477,7 +478,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();
|
|
|
return ret;
|
|
|
}
|
|
|
|