Re: [PATCH v5 3/3] usb: xhci: remove stop device and ring doorbell in hub control and bus suspend

From: Mathias Nyman
Date: Thu Jun 25 2015 - 10:50:23 EST


On 09.05.2015 04:15, Lu Baolu wrote:
> There is no need to call xhci_stop_device() and xhci_ring_device() in
> hub control and bus suspend functions since all device suspend and
> resume have been notified through device_suspend/device_resume interfaces.

I was looking through this code again before sending it forward, and it occurred to
me that this might be breaking the PORT_SUSPEND and PORT_SET_LINK_STATE port features
for xhci root hub.

In normal use these requests are called by usb core in usb_port_suspend(), which
also now notifies xhci, which makes sure xhci_stop_device() is called.

But I don't think there is anything preventing an URB to be sent to the xhci roothub
with a PORT_SUSPEND or PORT_SET_LINK_STATE port feature request. In this case the usb_port_suspend()
is not called, and no notify will stop the device.

For example hub validation tests might do this

-Mathias



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/