Skip to content

Commit 0af10ee

Browse files
d4ddi0bentiss
authored andcommitted
HID: core: fix dmesg flooding if report field larger than 32bit
Only warn once of oversize hid report value field On HP spectre x360 convertible the message: hid-sensor-hub 001F:8087:0AC2.0002: hid_field_extract() called with n (192) > 32! (kworker/1:2) is continually printed many times per second, crowding out all else. Protect dmesg by printing the warning only one time. The size of the hid report field data structure should probably be increased. The data structure is treated as a u32 in Linux, but an unlimited number of bits in the USB hid spec, so there is some rearchitecture needed now that devices are sending more than 32 bits. Signed-off-by: Joshua Clayton <[email protected]> Signed-off-by: Benjamin Tissoires <[email protected]>
1 parent aaeabb1 commit 0af10ee

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

drivers/hid/hid-core.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1311,8 +1311,8 @@ u32 hid_field_extract(const struct hid_device *hid, u8 *report,
13111311
unsigned offset, unsigned n)
13121312
{
13131313
if (n > 32) {
1314-
hid_warn(hid, "hid_field_extract() called with n (%d) > 32! (%s)\n",
1315-
n, current->comm);
1314+
hid_warn_once(hid, "%s() called with n (%d) > 32! (%s)\n",
1315+
__func__, n, current->comm);
13161316
n = 32;
13171317
}
13181318

0 commit comments

Comments
 (0)