If a host controller has been detached or reported a halt condition it
authormpi <mpi@openbsd.org>
Thu, 18 Dec 2014 10:44:17 +0000 (10:44 +0000)
committermpi <mpi@openbsd.org>
Thu, 18 Dec 2014 10:44:17 +0000 (10:44 +0000)
commit8dafe54adcd775a216b17d85b80b81947967fb86
treef611db2ccf9945bd64148a9ed110c4b0e0897d72
parentdaa8a461fa1e47ac0aafffe7721c7f5531080470
If a host controller has been detached or reported a halt condition it
should be considered as dead.  In such condition the stack no longer
submits I/O or schedules any USB task for its bus.

However we need an explore task to detach the root hub since only the
task thread is supposed to discover buses and attach/detach devices in
order to avoid races.

So reset the bus' dying flag when marking it as disconnecting in order
to let the task be scheduled.  This should be safe because a detached
or halted HC should not trigger any new interrupt.

Fix a panic when detaching USB PCMCIA cards reported by Tilo Stritzky.
sys/dev/usb/usb.c