diff options
author | David Gwynne <dlg@cvs.openbsd.org> | 2004-08-11 04:17:23 +0000 |
---|---|---|
committer | David Gwynne <dlg@cvs.openbsd.org> | 2004-08-11 04:17:23 +0000 |
commit | f6f7b7dab05e4a3f14046ac44b19674fbd0ea20a (patch) | |
tree | ff0bd0d420d0f5ce61f4e20dfb7f1114d8d15ae5 /sys/dev/usb/ohci.c | |
parent | dc1a42c30e36f84bee21d44551650b91f6511f3d (diff) |
Fixes a merge error as well as being from netbsd-bugs, pr 26546:
The cancellation of the timeout in ohci_softintr should predicate on the
transfer being the last of the batch
Diffstat (limited to 'sys/dev/usb/ohci.c')
-rw-r--r-- | sys/dev/usb/ohci.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/usb/ohci.c b/sys/dev/usb/ohci.c index a6a81b0aacb..11b77de62d6 100644 --- a/sys/dev/usb/ohci.c +++ b/sys/dev/usb/ohci.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ohci.c,v 1.47 2004/08/11 04:15:10 dlg Exp $ */ +/* $OpenBSD: ohci.c,v 1.48 2004/08/11 04:17:22 dlg Exp $ */ /* $NetBSD: ohci.c,v 1.139 2003/02/22 05:24:16 tsutsui Exp $ */ /* $FreeBSD: src/sys/dev/usb/ohci.c,v 1.22 1999/11/17 22:33:40 n_hibma Exp $ */ @@ -1342,6 +1342,9 @@ ohci_softintr(void *v) continue; } + if (std->flags & OHCI_CALL_DONE) + usb_uncallout(xfer->timeout_handle, ohci_timeout, xfer); + len = std->len; if (std->td.td_cbp != 0) len -= le32toh(std->td.td_be) - @@ -1351,7 +1354,6 @@ ohci_softintr(void *v) if (std->flags & OHCI_ADD_LEN) xfer->actlen += len; - usb_uncallout(xfer->timeout_handle, ohci_timeout, xfer); cc = OHCI_TD_GET_CC(le32toh(std->td.td_flags)); if (cc == OHCI_CC_NO_ERROR) { if (std->flags & OHCI_CALL_DONE) { |