From 9f2f3e4994872c829f1713c4d5e0cf9292d18abd Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Thu, 22 May 2008 22:07:51 +0100 Subject: [PATCH] --- yaml --- r: 104575 b: refs/heads/master c: 5cb4aeca8e8c29605703be5576825eb3257d8a92 h: refs/heads/master i: 104573: 82dd9bbd14084dfa727bfd8bd60a9a43f28f4dce 104571: 08b681f966afd7e54dbe65610c8f99a4ac5e2cf0 104567: ac6a68200d77b7973e59ff89503e942d8b19fe10 104559: 16ede3dd8a853561d62a5aa672e07a5764f740c0 104543: d56859bce7cbc10dbb4e3254ac5f2c5c1c5d64c0 104511: 13a002a5e022fd02af6f9007a865c5c0bbe880a4 104447: 36ecbd682292842230ecb63974d9cd4cffc150ab v: v3 --- [refs] | 2 +- trunk/drivers/usb/misc/usblcd.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index f8069d4be1d5..b64b17f66093 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1160d0765660e14b44dffd931b28a3875d5d9e46 +refs/heads/master: 5cb4aeca8e8c29605703be5576825eb3257d8a92 diff --git a/trunk/drivers/usb/misc/usblcd.c b/trunk/drivers/usb/misc/usblcd.c index 7f7021ee4189..2db4228fbb01 100644 --- a/trunk/drivers/usb/misc/usblcd.c +++ b/trunk/drivers/usb/misc/usblcd.c @@ -146,7 +146,7 @@ static ssize_t lcd_read(struct file *file, char __user * buffer, size_t count, l return retval; } -static int lcd_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) +static long lcd_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { struct usb_lcd *dev; u16 bcdDevice; @@ -158,12 +158,14 @@ static int lcd_ioctl(struct inode *inode, struct file *file, unsigned int cmd, u switch (cmd) { case IOCTL_GET_HARD_VERSION: + lock_kernel(); 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(); if (copy_to_user((void __user *)arg,buf,strlen(buf))!=0) return -EFAULT; break; @@ -272,7 +274,7 @@ static const struct file_operations lcd_fops = { .read = lcd_read, .write = lcd_write, .open = lcd_open, - .ioctl = lcd_ioctl, + .unlocked_ioctl = lcd_ioctl, .release = lcd_release, };