diff options
Diffstat (limited to 'drivers/usb/misc/idmouse.c')
| -rw-r--r-- | drivers/usb/misc/idmouse.c | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/drivers/usb/misc/idmouse.c b/drivers/usb/misc/idmouse.c index 733acc213726..1dc3e0f73014 100644 --- a/drivers/usb/misc/idmouse.c +++ b/drivers/usb/misc/idmouse.c | |||
| @@ -105,11 +105,10 @@ static struct file_operations idmouse_fops = { | |||
| 105 | .release = idmouse_release, | 105 | .release = idmouse_release, |
| 106 | }; | 106 | }; |
| 107 | 107 | ||
| 108 | /* class driver information for devfs */ | 108 | /* class driver information */ |
| 109 | static struct usb_class_driver idmouse_class = { | 109 | static struct usb_class_driver idmouse_class = { |
| 110 | .name = "usb/idmouse%d", | 110 | .name = "idmouse%d", |
| 111 | .fops = &idmouse_fops, | 111 | .fops = &idmouse_fops, |
| 112 | .mode = S_IFCHR | S_IRUSR | S_IRGRP | S_IROTH, /* filemode (char, 444) */ | ||
| 113 | .minor_base = USB_IDMOUSE_MINOR_BASE, | 112 | .minor_base = USB_IDMOUSE_MINOR_BASE, |
| 114 | }; | 113 | }; |
| 115 | 114 | ||
| @@ -320,20 +319,8 @@ static ssize_t idmouse_read(struct file *file, char __user *buffer, size_t count | |||
| 320 | return -ENODEV; | 319 | return -ENODEV; |
| 321 | } | 320 | } |
| 322 | 321 | ||
| 323 | if (*ppos >= IMGSIZE) { | 322 | result = simple_read_from_buffer(buffer, count, ppos, |
| 324 | up (&dev->sem); | 323 | dev->bulk_in_buffer, IMGSIZE); |
| 325 | return 0; | ||
| 326 | } | ||
| 327 | |||
| 328 | count = min ((loff_t)count, IMGSIZE - (*ppos)); | ||
| 329 | |||
| 330 | if (copy_to_user (buffer, dev->bulk_in_buffer + *ppos, count)) { | ||
| 331 | result = -EFAULT; | ||
| 332 | } else { | ||
| 333 | result = count; | ||
| 334 | *ppos += count; | ||
| 335 | } | ||
| 336 | |||
| 337 | /* unlock the device */ | 324 | /* unlock the device */ |
| 338 | up(&dev->sem); | 325 | up(&dev->sem); |
| 339 | return result; | 326 | return result; |
