usb: hub: Fix auto-remount of safely removed or ejected USB-3 devices
authorMathias Nyman <mathias.nyman@linux.intel.com>
Thu, 17 Nov 2016 09:14:14 +0000 (11:14 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 17 Nov 2016 15:29:47 +0000 (16:29 +0100)
commit37be66767e3cae4fd16e064d8bb7f9f72bf5c045
treedf1da477203527f0139ab3936cd4888a07f6f662
parentc95a9f83711bf53faeb4ed9bbb63a3f065613dfb
usb: hub: Fix auto-remount of safely removed or ejected USB-3 devices

USB-3 does not have any link state that will avoid negotiating a connection
with a plugged-in cable but will signal the host when the cable is
unplugged.

For USB-3 we used to first set the link to Disabled, then to RxDdetect to
be able to detect cable connects or disconnects. But in RxDetect the
connected device is detected again and eventually enabled.

Instead set the link into U3 and disable remote wakeups for the device.
This is what Windows does, and what Alan Stern suggested.

Cc: stable@vger.kernel.org
Cc: Alan Stern <stern@rowland.harvard.edu>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/core/hub.c