Finally plug the public xfer leak #1 in our USB stack.
authormpi <mpi@openbsd.org>
Tue, 29 Apr 2014 14:11:23 +0000 (14:11 +0000)
committermpi <mpi@openbsd.org>
Tue, 29 Apr 2014 14:11:23 +0000 (14:11 +0000)
commit12ec0f464cd12fecc3f098ab3e9250498090b714
treeaa082abede4aeb82e0683d50fcc103258747d4de
parent1c71c09da8990c2356151ab51cc3607d9e9089ff
Finally plug the public xfer leak #1 in our USB stack.

Every call to usbd_abort_pipe() on an interrupt pipe would simply
reset the intrxfer pointer, which would prevent usbd_close_pipe()
to free it.  Since we abort pipes in a lot of situations: when a
device is detached, when a USB-to-serial adapter is closed, when
an error occurs, when the machine is suspended, etc, this would
result in hundreds of leaked xfers in most of my machines.

xhci(4) is not affected, but you can't enable it right now since
the stack is not ready :)

While here put a KASSERT() to make sure drivers are only calling
the interrupt abort method for intrxfer, if that's not the case,
please let met know.
sys/dev/usb/ehci.c
sys/dev/usb/ohci.c
sys/dev/usb/uhci.c