The issue is definitely a discrepancy between the descriptor as fixed up by the hid_logitech driver and the descriptor as read after resume by the usbhid driver. The latter reads the descriptor directly off the bus, so it doesn't include any report_fixup changes. report_fixup is a standard method used by many other HID drivers, though, and I'd say the patch above potentially created this regression for all drivers that have report_fixup. The check in hid_post_reset needs to call report_fixup on its local rdesc copy before comparing it to the one in the existing hid_device.
Found it! The code that complains about changes to the contents (instead of size) of HID report descriptors was added to hid_post_reset in drivers/ hid/usbhid/ hid-core. c on 2012-04-03. See: http:// git.kernel. org/?p= linux/kernel/ git/torvalds/ linux.git; a=commitdiff; h=dc3c78e434690 63c5bf4b7442145 08f94c4129f9
The issue is definitely a discrepancy between the descriptor as fixed up by the hid_logitech driver and the descriptor as read after resume by the usbhid driver. The latter reads the descriptor directly off the bus, so it doesn't include any report_fixup changes. report_fixup is a standard method used by many other HID drivers, though, and I'd say the patch above potentially created this regression for all drivers that have report_fixup. The check in hid_post_reset needs to call report_fixup on its local rdesc copy before comparing it to the one in the existing hid_device.