diff options
author | 2004-08-11 04:17:22 +0000 | |
---|---|---|
committer | 2004-08-11 04:17:22 +0000 | |
commit | 4edc35e9ab16cc0819fd9bc2df97c680145e200d (patch) | |
tree | 57d90732b30354b50fb7ce770e66ce6138e44e48 /sys/dev/usb | |
parent | from netbsd-bugs, pr 26545: (diff) | |
download | wireguard-openbsd-4edc35e9ab16cc0819fd9bc2df97c680145e200d.tar.xz wireguard-openbsd-4edc35e9ab16cc0819fd9bc2df97c680145e200d.zip |
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')
-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) { |