Since we are no longer resetting rings when a Babble or Stall condition
authormpi <mpi@openbsd.org>
Sun, 18 Jan 2015 11:54:02 +0000 (11:54 +0000)
committermpi <mpi@openbsd.org>
Sun, 18 Jan 2015 11:54:02 +0000 (11:54 +0000)
commitf584fc7044a2a65293fd1f568a065e2b2e6dce09
tree40b2a110fe8e964988a8a45b2814ab4d69b5311e
parentb54d0c2aedcebfe053d875015c3f848d1dafaef5
Since we are no longer resetting rings when a Babble or Stall condition
is detected, simply keep track of the faulty xfer instead of completing
all the pending ones.

Fix a race condition where we could end up aborting a freshly enqueued
xfer when two different threads are submitting control transfers (i.e.
usbdevs(8) and a kernel driver).
sys/dev/usb/xhci.c
sys/dev/usb/xhcivar.h