Make sure asynchronous commands do not race with synchronous ones.
authormpi <mpi@openbsd.org>
Fri, 8 Aug 2014 14:34:11 +0000 (14:34 +0000)
committermpi <mpi@openbsd.org>
Fri, 8 Aug 2014 14:34:11 +0000 (14:34 +0000)
commitf10741cdb3678bf823ac66e22146d11ed05a580a
treefa51c36cf94829a931bd199ae1e085ae0fc1c1e1
parent3d65fce90bbcd131288011c7d6014de6be88ecce
Make sure asynchronous commands do not race with synchronous ones.

Since asynchronous commands can be submitted from interrupt context
it was possible to race with a process waiting for the completion of
a previously submitted command.  So stop relying on the per-softc
TRB pointer for asynchronous commands and simply get the address of
the command TRB from the event TRB.
sys/dev/usb/xhci.c