This series fixes several report handling and device lifecycle bugs in
hid-rmi: it treats short output report writes as errors, limits trailing
0xff stripping to attention reports so register read replies are not
truncated, and validates read data report and transfer length bounds. It
also gates reset work and power management callbacks on device start and
suspend state, re-selects page 0 across resets, avoids GFP_ATOMIC
allocations with hard IRQs disabled, and stops modifying the shared
platform data template during probe.
The rest of the series switches output report packing to unaligned
accessors, uses scope-based cleanup for the mode buffer and page mutex,
drops dead code, and cleans up coding style and logging.
Jiri, Benjamin, could this series go through the input tree once
reviewed, as I have follow-up RMI4 core changes that depend on it? Also,
would it make sense to move hid-rmi to drivers/input/rmi4/ alongside the
rest of the RMI4 transport drivers?
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
Dmitry Torokhov (12):
HID: rmi: return error on short output report writes
HID: rmi: only strip trailing 0xff bytes from attention reports
HID: rmi: validate read data report and protocol transfer bounds
HID: rmi: fix device lifecycle, suspend, and reset work handling
HID: rmi: re-select page 0 across device resets
HID: rmi: avoid GFP_ATOMIC allocation with hard IRQs disabled
HID: rmi: do not mutate shared platform data template
HID: rmi: use put_unaligned_le16() to populate output reports
HID: rmi: use scope-based cleanup for mode feature buffer
HID: rmi: switch to scoped mutex guards
HID: rmi: remove dead code and reorder report write helper
HID: rmi: clean up coding style and logging
drivers/hid/hid-rmi.c | 506 +++++++++++++++++++++++++-------------------------
1 file changed, 252 insertions(+), 254 deletions(-)
---
base-commit: 84abb955b1015477aa11a96e2f3ac1b938b77f48
change-id: 20261021-hid-rmi-b884a25f3ad1
Thanks.
--
Dmitry