summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/uhci.c
diff options
context:
space:
mode:
authorn_hibma <n_hibma@FreeBSD.org>1999-03-08 22:27:07 +0000
committern_hibma <n_hibma@FreeBSD.org>1999-03-08 22:27:07 +0000
commitc269952e177a5b66ae3bc2306ada5ecc1dc39515 (patch)
tree023caed150cb27334e9707234aef71b6b027d120 /sys/dev/usb/uhci.c
parent984e3d8eedde15696cfb925871e51b12fed6b6d7 (diff)
downloadFreeBSD-src-c269952e177a5b66ae3bc2306ada5ecc1dc39515.zip
FreeBSD-src-c269952e177a5b66ae3bc2306ada5ecc1dc39515.tar.gz
Move untimeout up before call to uhci_ii_done, avoids panic in
untimeout. Submitted by Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp> and gehenna@jp.FreeBSD.org.
Diffstat (limited to 'sys/dev/usb/uhci.c')
-rw-r--r--sys/dev/usb/uhci.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/sys/dev/usb/uhci.c b/sys/dev/usb/uhci.c
index 8556a27..42c99b7 100644
--- a/sys/dev/usb/uhci.c
+++ b/sys/dev/usb/uhci.c
@@ -314,7 +314,6 @@ uhci_init(sc)
uhci_run(sc, 0); /* stop the controller */
UWRITE2(sc, UHCI_INTR, 0); /* disable interrupts */
- /* NWH PR1 The 823C572 resets FLBASEADDR as well, moved busreset up */
uhci_busreset(sc);
/* Allocate and initialize real frame array. */
@@ -327,8 +326,6 @@ uhci_init(sc)
UWRITE2(sc, UHCI_FRNUM, 0); /* set frame number to 0 */
UWRITE4(sc, UHCI_FLBASEADDR, DMAADDR(&dma)); /* set frame list */
- /* NWH PR1 moved uhci_busreset up */
-
/* Allocate the dummy QH where bulk traffic will be queued. */
bsqh = uhci_alloc_sqh(sc);
if (!bsqh)
@@ -749,10 +746,10 @@ uhci_check_intr(sc, ii)
return;
}
done:
+ usb_untimeout(uhci_timeout, ii, ii->timeout_handle);
upipe = (struct uhci_pipe *)ii->reqh->pipe;
upipe->pipe.endpoint->toggle = upipe->newtoggle;
uhci_ii_done(ii, 0);
- usb_untimeout(uhci_timeout, ii, ii->timeout_handle);
}
void
OpenPOWER on IntegriCloud