diff options
| -rw-r--r-- | drivers/hid/hid-core.c | 6 | ||||
| -rw-r--r-- | drivers/hid/usbhid/hiddev.c | 4 |
2 files changed, 7 insertions, 3 deletions
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index f2c21d5d24e8..5eb10c2ce665 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c | |||
| @@ -1075,14 +1075,16 @@ EXPORT_SYMBOL_GPL(hid_report_raw_event); | |||
| 1075 | */ | 1075 | */ |
| 1076 | int hid_input_report(struct hid_device *hid, int type, u8 *data, int size, int interrupt) | 1076 | int hid_input_report(struct hid_device *hid, int type, u8 *data, int size, int interrupt) |
| 1077 | { | 1077 | { |
| 1078 | struct hid_report_enum *report_enum = hid->report_enum + type; | 1078 | struct hid_report_enum *report_enum; |
| 1079 | struct hid_driver *hdrv = hid->driver; | 1079 | struct hid_driver *hdrv; |
| 1080 | struct hid_report *report; | 1080 | struct hid_report *report; |
| 1081 | unsigned int i; | 1081 | unsigned int i; |
| 1082 | int ret; | 1082 | int ret; |
| 1083 | 1083 | ||
| 1084 | if (!hid || !hid->driver) | 1084 | if (!hid || !hid->driver) |
| 1085 | return -ENODEV; | 1085 | return -ENODEV; |
| 1086 | report_enum = hid->report_enum + type; | ||
| 1087 | hdrv = hid->driver; | ||
| 1086 | 1088 | ||
| 1087 | if (!size) { | 1089 | if (!size) { |
| 1088 | dbg_hid("empty report\n"); | 1090 | dbg_hid("empty report\n"); |
diff --git a/drivers/hid/usbhid/hiddev.c b/drivers/hid/usbhid/hiddev.c index 9e9421525fb9..215b2addddbb 100644 --- a/drivers/hid/usbhid/hiddev.c +++ b/drivers/hid/usbhid/hiddev.c | |||
| @@ -527,8 +527,10 @@ static noinline int hiddev_ioctl_usage(struct hiddev *hiddev, unsigned int cmd, | |||
| 527 | goto goodreturn; | 527 | goto goodreturn; |
| 528 | 528 | ||
| 529 | case HIDIOCGCOLLECTIONINDEX: | 529 | case HIDIOCGCOLLECTIONINDEX: |
| 530 | i = field->usage[uref->usage_index].collection_index; | ||
| 531 | unlock_kernel(); | ||
| 530 | kfree(uref_multi); | 532 | kfree(uref_multi); |
| 531 | return field->usage[uref->usage_index].collection_index; | 533 | return i; |
| 532 | case HIDIOCGUSAGES: | 534 | case HIDIOCGUSAGES: |
| 533 | for (i = 0; i < uref_multi->num_values; i++) | 535 | for (i = 0; i < uref_multi->num_values; i++) |
| 534 | uref_multi->values[i] = | 536 | uref_multi->values[i] = |
