WSL2-Linux-Kernel/drivers
Simon Haggett dc3c78e434 HID: usbhid: Check HID report descriptor contents after device reset
When a USB device reset occurs, usbcore will refetch the device and configuration
descriptors and compare them with those retrieved before the reset to ensure
that they have not changed. For USB HID devices, this implicitly includes the
HID class descriptor (as this is fetched with the configuration descriptor).
However, the HID report descriptor is not checked again.

Whilst a change in the size of the HID report descriptor will be detected (as
this is held in the class descriptor), content changes to the report descriptor
which do not result in a change in its size will be missed. If a firmware update
were applied to a USB HID device which resulted in such a change to the report
descriptor after device reset, then this would not be picked up by usbhid.

This patch fixes this issue by allowing usbhid to check the contents of the
report descriptor after the device reset, and trigger a rebind of the device
if there is a mismatch.

Reviewed-by: Toby Gray <toby.gray@realvnc.com>
Signed-off-by: Simon Haggett <simon.haggett@realvnc.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2012-04-03 15:07:58 -07:00
..
accessibility vt:tackle kbd_table 2012-03-08 10:50:35 -08:00
acpi
amba
ata pata/at91: use newly introduced SMC accessors 2012-02-13 18:31:37 +01:00
atm eni: fix driver remove function and driver probe error path. 2012-03-16 23:13:20 -07:00
auxdisplay
base Merge 3.3-rc6 into driver-core-next 2012-03-09 12:35:53 -08:00
bcma bcma: silence PMU warning for BCM4331 2012-03-07 13:56:37 -05:00
block USB merge for 3.4-rc1 2012-03-20 11:26:30 -07:00
bluetooth Bluetooth: Adding USB device 13d3:3375 as an Atheros AR3012. 2012-03-08 02:16:24 -03:00
cdrom
char tty and serial merge for 3.4-rc1 2012-03-20 11:24:39 -07:00
clk
clocksource cs5535-clockevt: Allow the MFGPT IRQ to be shared 2012-03-06 14:17:45 +01:00
connector
cpufreq powernow-k6: Really enable auto-loading 2012-02-13 15:26:03 -08:00
cpuidle Merge branch 'perf/urgent' into perf/core 2012-03-05 09:20:08 +01:00
crypto Merge 3.3-rc6 into driver-core-next 2012-03-09 12:35:53 -08:00
dca
devfreq
dio
dma
edac asm-generic: architecture independent readq/writeq for 32bit environment 2012-02-21 16:47:28 -08:00
eisa
firewire
firmware
gpio
gpu Merge branch 'exynos-drm-fixes' of git://git.infradead.org/users/kmpark/linux-samsung into drm-fixes 2012-03-15 09:41:26 +00:00
hid HID: usbhid: Check HID report descriptor contents after device reset 2012-04-03 15:07:58 -07:00
hv Tools: hv: Support enumeration from all the pools 2012-03-16 13:36:04 -07:00
hwmon driver core merge for 3.4-rc1 2012-03-20 11:16:20 -07:00
hwspinlock
i2c i2c-algo-bit: Fix spurious SCL timeouts under heavy load 2012-03-15 18:11:05 +01:00
ide ARM: at91: drop ide driver in favor of the pata one 2012-02-13 18:31:37 +01:00
idle intel_idle: Revert change of auto_demotion_disable_flags for Nehalem 2012-02-15 22:27:15 -08:00
ieee802154
infiniband netlink: add netlink_dump_control structure for netlink_dump_start() 2012-02-26 14:10:06 -05:00
input driver core merge for 3.4-rc1 2012-03-20 11:16:20 -07:00
iommu Merge branch 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-03-19 17:10:38 -07:00
isdn Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-03-20 21:04:47 -07:00
leds
lguest
macintosh powerpc/adb: Use set_current_state() 2012-02-16 16:15:12 +11:00
mca
md Device-mapper fixes for 3.3. 2012-03-08 17:21:51 -08:00
media driver core merge for 3.4-rc1 2012-03-20 11:16:20 -07:00
memstick
message
mfd mfd: Correct readability of WM8994 DC servo 4E register 2012-03-01 01:42:52 +01:00
misc tty and serial merge for 3.4-rc1 2012-03-20 11:24:39 -07:00
mmc tty and serial merge for 3.4-rc1 2012-03-20 11:24:39 -07:00
mtd
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-03-20 21:04:47 -07:00
nfc NFC: Remove the rf mode parameter from the DEP link up routine 2012-03-06 15:16:23 -05:00
nubus
of of/mdio: fix fixed link bus name 2012-02-27 10:09:52 -06:00
oprofile
parisc [PARISC] include <linux/prefetch.h> in drivers/parisc/iommu-helpers.h 2012-02-27 09:44:15 -06:00
parport
pci Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-03-20 21:04:47 -07:00
pcmcia Merge 3.3-rc6 into driver-core-next 2012-03-09 12:35:53 -08:00
pinctrl
platform panasonic-laptop: avoid overflow in acpi_pcc_hotkey_add() 2012-03-12 10:25:51 -04:00
pnp
power USB merge for 3.4-rc1 2012-03-20 11:26:30 -07:00
pps pps: class_create() returns an ERR_PTR, not NULL 2012-03-05 15:49:43 -08:00
ps3
ptp phc: Update author's email address. 2012-03-17 01:41:43 -07:00
rapidio rapidio/tsi721: fix bug in register offset definitions 2012-03-15 17:03:03 -07:00
regulator driver core merge for 3.4-rc1 2012-03-20 11:16:20 -07:00
rtc Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-03-20 10:32:09 -07:00
s390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-03-20 21:04:47 -07:00
sbus
scsi Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-03-20 21:04:47 -07:00
sfi
sh
sn
spi Fix section mismatch in spi-pl022.c 2012-02-13 11:57:58 -07:00
ssb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-03-20 21:04:47 -07:00
staging Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-03-20 21:04:47 -07:00
target Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-03-20 10:10:18 -07:00
tc
thermal
tty Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-03-20 21:04:47 -07:00
uio
usb USB merge for 3.4-rc1 2012-03-20 11:26:30 -07:00
uwb
vhost
video drivers/video/backlight/s6e63m0.c: fix corruption storing gamma mode 2012-03-15 17:03:04 -07:00
virt
virtio virtio: balloon: leak / fill balloon across S4 2012-03-01 09:28:41 +10:30
vlynq
w1 DS2781 Maxim Stand-Alone Fuel Gauge battery and w1 slave drivers 2012-03-08 11:15:33 -08:00
watchdog watchdog: fix GETTIMEOUT ioctl in booke_wdt 2012-02-29 09:46:13 +01:00
xen
zorro
Kconfig
Makefile