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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html