On Fri, 4 Oct 2019, David Heinzelmann wrote: > Hi, > > thank you for the feedback! I hope this time everything is in order. > However, the correct error description is somewhat difficult for me. You should follow the advice I gave you last time: Explain what the problem is and how the patch fixes it. > Here is the third version: > > From 58634d035508b621025da1d866179b59ed0ae37a Mon Sep 17 00:00:00 2001 > From: David Heinzelmann <heinzelmann.david@xxxxxxxxx> > Date: Fri, 4 Oct 2019 12:28:36 +0200 > Subject: [PATCH v3] usb: hub: Check device descriptor before resusciation > > If a port connection-change occurs, the connection should not be > resusciated without a prior check if the port connection is enabled. > Signed-off-by: David Heinzelmann <heinzelmann.david@xxxxxxxxx> (Insert a blank line before the Signed-off-by:.) See, this doesn't say what the problem is. Someone reading your description won't know _why_ a check is needed. The problem shows up when a device goes through a firmware update. It will disconnect from the USB bus and reconnect, and if it is attached to an xHCI host controller then the controller hardware will automatically initialize the connection and enable the port. But hub_port_connect_change() assumes that if the port is enabled then nothing has changed; it doesn't check to see if the device's descriptors have been updated. As a result, the kernel's internal copy of the descriptors ends up being incorrect and the device doesn't work properly. 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. Alan Stern