summaryrefslogtreecommitdiff
path: root/drivers/usb/cdns3/cdns3-pci-wrap.c
diff options
context:
space:
mode:
authorDavid Heinzelmann <heinzelmann.david@gmail.com>2019-10-09 06:46:47 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-10-10 12:34:06 +0200
commita4f55d8b8c146f9d99fe004bc9d1403d4c149ae3 (patch)
tree1110a6bbb435120c9a905cb30465e21ad5099816 /drivers/usb/cdns3/cdns3-pci-wrap.c
parentdb0386312f294abccc472b90ee2bf940da12dd0d (diff)
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 'drivers/usb/cdns3/cdns3-pci-wrap.c')
0 files changed, 0 insertions, 0 deletions