On Tue, 29 Apr 2014, Dan Williams wrote:

> > However, either way we still have bad interactions between
> > hub_{quiesce|activate}() and usb_port_runtime_{suspend|resume}().
> > Consider, for example, what happens to the ports' power states when the
> > hub is reset.
> >
> 
> You mean in terms of pm_runtime state getting out of sync with the
> hardware state?  We do have (admittedly ugly in my opinion) a check of
> the power state in hub_power_on() so if port power was runtime removed
> hub_activate() will honor that and not restore power.  And a new
> pm_runtime_get_sync in usb_disconnect() will handle the hub_quiesce()
> interfaction.  Am I missing something?

What happens if a thread tries to resume or suspend a port while the 
hub is being reset?  With nothing to prevent it, the request sent to 
the hub will fail and the port may end up in a runtime PM error state.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to