Index: usb/ehci.c =================================================================== RCS file: /cvsroot/src/sys/dev/usb/ehci.c,v retrieving revision 1.193 diff -u -p -u -r1.193 ehci.c --- usb/ehci.c 4 Nov 2012 12:01:55 -0000 1.193 +++ usb/ehci.c 28 Dec 2012 09:14:37 -0000 @@ -3247,7 +3247,9 @@ ehci_timeout_task(void *addr) DPRINTF(("ehci_timeout_task: xfer=%p\n", xfer)); mutex_enter(&sc->sc_lock); - ehci_abort_xfer(xfer, USBD_TIMEOUT); + if (!xfer->done) { + ehci_abort_xfer(xfer, USBD_TIMEOUT); + } mutex_exit(&sc->sc_lock); } Index: usb/ohci.c =================================================================== RCS file: /cvsroot/src/sys/dev/usb/ohci.c,v retrieving revision 1.226 diff -u -p -u -r1.226 ohci.c --- usb/ohci.c 23 Dec 2012 17:00:13 -0000 1.226 +++ usb/ohci.c 28 Dec 2012 09:14:42 -0000 @@ -2024,7 +2024,9 @@ ohci_timeout_task(void *addr) DPRINTF(("ohci_timeout_task: xfer=%p\n", xfer)); mutex_enter(&sc->sc_lock); - ohci_abort_xfer(xfer, USBD_TIMEOUT); + if (!xfer->done) { + ohci_abort_xfer(xfer, USBD_TIMEOUT); + } mutex_exit(&sc->sc_lock); } Index: usb/uhci.c =================================================================== RCS file: /cvsroot/src/sys/dev/usb/uhci.c,v retrieving revision 1.249 diff -u -p -u -r1.249 uhci.c --- usb/uhci.c 24 Jun 2012 10:06:34 -0000 1.249 +++ usb/uhci.c 28 Dec 2012 09:14:43 -0000 @@ -1665,7 +1665,9 @@ uhci_timeout_task(void *addr) DPRINTF(("uhci_timeout_task: xfer=%p\n", xfer)); mutex_enter(&sc->sc_lock); - uhci_abort_xfer(xfer, USBD_TIMEOUT); + if (!xfer->done) { + uhci_abort_xfer(xfer, USBD_TIMEOUT); + } mutex_exit(&sc->sc_lock); }