diff options
| author | David Heinzelmann <heinzelmann.david@gmail.com> | 2019-10-09 06:46:47 +0200 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-10-10 12:34:06 +0200 |
| commit | a4f55d8b8c146f9d99fe004bc9d1403d4c149ae3 (patch) | |
| tree | 1110a6bbb435120c9a905cb30465e21ad5099816 /tools/perf/scripts/python/exported-sql-viewer.py | |
| parent | usb: gadget: Remove set but not used variable 'opts' in msg_do_config (diff) | |
| download | linux-a4f55d8b8c146f9d99fe004bc9d1403d4c149ae3.tar.gz linux-a4f55d8b8c146f9d99fe004bc9d1403d4c149ae3.zip | |
usb: hub: Check device descriptor before resusciation
If a device connected to an xHCI host controller disconnects from the USB bus
and then reconnects, e.g. triggered by a firmware update, then the host
controller automatically activates the connection and the port is enabled. The
implementation of hub_port_connect_change() assumes that if the port is
enabled then nothing has changed. There is no check if the USB descriptors
have changed. As a result, the kernel's internal copy of the descriptors ends
up being incorrect and the device doesn't work properly anymore.
The solution to the problem is for hub_port_connect_change() always to
check whether the device's descriptors have changed before resuscitating
an enabled port.
Signed-off-by: David Heinzelmann <heinzelmann.david@gmail.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Link: https://lore.kernel.org/r/20191009044647.24536-1-heinzelmann.david@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'tools/perf/scripts/python/exported-sql-viewer.py')
0 files changed, 0 insertions, 0 deletions
