diff options
Diffstat (limited to 'drivers/hid/hidraw.c')
| -rw-r--r-- | drivers/hid/hidraw.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/hid/hidraw.c b/drivers/hid/hidraw.c index 732449628971..02b19db5442e 100644 --- a/drivers/hid/hidraw.c +++ b/drivers/hid/hidraw.c | |||
| @@ -267,8 +267,10 @@ static long hidraw_ioctl(struct file *file, unsigned int cmd, | |||
| 267 | default: | 267 | default: |
| 268 | { | 268 | { |
| 269 | struct hid_device *hid = dev->hid; | 269 | struct hid_device *hid = dev->hid; |
| 270 | if (_IOC_TYPE(cmd) != 'H' || _IOC_DIR(cmd) != _IOC_READ) | 270 | if (_IOC_TYPE(cmd) != 'H' || _IOC_DIR(cmd) != _IOC_READ) { |
| 271 | return -EINVAL; | 271 | ret = -EINVAL; |
| 272 | break; | ||
| 273 | } | ||
| 272 | 274 | ||
| 273 | if (_IOC_NR(cmd) == _IOC_NR(HIDIOCGRAWNAME(0))) { | 275 | if (_IOC_NR(cmd) == _IOC_NR(HIDIOCGRAWNAME(0))) { |
| 274 | int len; | 276 | int len; |
| @@ -277,8 +279,9 @@ static long hidraw_ioctl(struct file *file, unsigned int cmd, | |||
| 277 | len = strlen(hid->name) + 1; | 279 | len = strlen(hid->name) + 1; |
| 278 | if (len > _IOC_SIZE(cmd)) | 280 | if (len > _IOC_SIZE(cmd)) |
| 279 | len = _IOC_SIZE(cmd); | 281 | len = _IOC_SIZE(cmd); |
| 280 | return copy_to_user(user_arg, hid->name, len) ? | 282 | ret = copy_to_user(user_arg, hid->name, len) ? |
| 281 | -EFAULT : len; | 283 | -EFAULT : len; |
| 284 | break; | ||
| 282 | } | 285 | } |
| 283 | 286 | ||
| 284 | if (_IOC_NR(cmd) == _IOC_NR(HIDIOCGRAWPHYS(0))) { | 287 | if (_IOC_NR(cmd) == _IOC_NR(HIDIOCGRAWPHYS(0))) { |
| @@ -288,12 +291,13 @@ static long hidraw_ioctl(struct file *file, unsigned int cmd, | |||
| 288 | len = strlen(hid->phys) + 1; | 291 | len = strlen(hid->phys) + 1; |
| 289 | if (len > _IOC_SIZE(cmd)) | 292 | if (len > _IOC_SIZE(cmd)) |
| 290 | len = _IOC_SIZE(cmd); | 293 | len = _IOC_SIZE(cmd); |
| 291 | return copy_to_user(user_arg, hid->phys, len) ? | 294 | ret = copy_to_user(user_arg, hid->phys, len) ? |
| 292 | -EFAULT : len; | 295 | -EFAULT : len; |
| 296 | break; | ||
| 293 | } | 297 | } |
| 294 | } | 298 | } |
| 295 | 299 | ||
| 296 | ret = -ENOTTY; | 300 | ret = -ENOTTY; |
| 297 | } | 301 | } |
| 298 | unlock_kernel(); | 302 | unlock_kernel(); |
| 299 | return ret; | 303 | return ret; |
