diff options
-rw-r--r-- | drivers/hid/hid-core.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index 368fbb0c4ca6..c49aaa21e1a7 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c | |||
@@ -1096,20 +1096,11 @@ int hid_input_report(struct hid_device *hid, int type, u8 *data, int size, int i | |||
1096 | goto nomem; | 1096 | goto nomem; |
1097 | } | 1097 | } |
1098 | 1098 | ||
1099 | snprintf(buf, HID_DEBUG_BUFSIZE - 1, | ||
1100 | "\nreport (size %u) (%snumbered)\n", size, report_enum->numbered ? "" : "un"); | ||
1101 | hid_debug_event(hid, buf); | ||
1102 | |||
1103 | report = hid_get_report(report_enum, data); | ||
1104 | if (!report) { | ||
1105 | kfree(buf); | ||
1106 | return -1; | ||
1107 | } | ||
1108 | |||
1109 | /* dump the report */ | 1099 | /* dump the report */ |
1110 | snprintf(buf, HID_DEBUG_BUFSIZE - 1, | 1100 | snprintf(buf, HID_DEBUG_BUFSIZE - 1, |
1111 | "report %d (size %u) = ", report->id, size); | 1101 | "\nreport (size %u) (%snumbered) = ", size, report_enum->numbered ? "" : "un"); |
1112 | hid_debug_event(hid, buf); | 1102 | hid_debug_event(hid, buf); |
1103 | |||
1113 | for (i = 0; i < size; i++) { | 1104 | for (i = 0; i < size; i++) { |
1114 | snprintf(buf, HID_DEBUG_BUFSIZE - 1, | 1105 | snprintf(buf, HID_DEBUG_BUFSIZE - 1, |
1115 | " %02x", data[i]); | 1106 | " %02x", data[i]); |
@@ -1117,6 +1108,13 @@ int hid_input_report(struct hid_device *hid, int type, u8 *data, int size, int i | |||
1117 | } | 1108 | } |
1118 | hid_debug_event(hid, "\n"); | 1109 | hid_debug_event(hid, "\n"); |
1119 | 1110 | ||
1111 | report = hid_get_report(report_enum, data); | ||
1112 | |||
1113 | if (!report) { | ||
1114 | kfree(buf); | ||
1115 | return -1; | ||
1116 | } | ||
1117 | |||
1120 | kfree(buf); | 1118 | kfree(buf); |
1121 | 1119 | ||
1122 | nomem: | 1120 | nomem: |