diff options
author | n_hibma <n_hibma@FreeBSD.org> | 1999-03-08 22:27:07 +0000 |
---|---|---|
committer | n_hibma <n_hibma@FreeBSD.org> | 1999-03-08 22:27:07 +0000 |
commit | c269952e177a5b66ae3bc2306ada5ecc1dc39515 (patch) | |
tree | 023caed150cb27334e9707234aef71b6b027d120 /sys/dev/usb/uhci.c | |
parent | 984e3d8eedde15696cfb925871e51b12fed6b6d7 (diff) | |
download | FreeBSD-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.c | 5 |
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 |