diff options
author | Marcus Glocker <mglocker@cvs.openbsd.org> | 2008-10-30 08:11:14 +0000 |
---|---|---|
committer | Marcus Glocker <mglocker@cvs.openbsd.org> | 2008-10-30 08:11:14 +0000 |
commit | 2191a789175cad5e225b2c2697ee01552d5111fd (patch) | |
tree | 7bba407173b5e4a8feca1b6ed517752e93f13c64 /sys/dev/usb/ehcivar.h | |
parent | 5d86b8ed7c343af23115a043bbadf9900787ff05 (diff) |
From Jeremy Morse via NetBSD:
* Serialize access to the ehci intrlist.
* Change the ehci intrlist to a tailq so xfers are not queued out of order.
* In ehci_check_itd_intr, don't treat a transfer error as an indication
that the xfer is no longer active.
This also fixes "ehci_allocx not free" errors seen recently.
Tested and OK brad@, kevlo@
Diffstat (limited to 'sys/dev/usb/ehcivar.h')
-rw-r--r-- | sys/dev/usb/ehcivar.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/dev/usb/ehcivar.h b/sys/dev/usb/ehcivar.h index b69157accb7..ac56de46513 100644 --- a/sys/dev/usb/ehcivar.h +++ b/sys/dev/usb/ehcivar.h @@ -1,4 +1,4 @@ -/* $OpenBSD: ehcivar.h,v 1.16 2008/08/09 22:59:20 mglocker Exp $ */ +/* $OpenBSD: ehcivar.h,v 1.17 2008/10/30 08:11:13 mglocker Exp $ */ /* $NetBSD: ehcivar.h,v 1.19 2005/04/29 15:04:29 augustss Exp $ */ /* @@ -76,7 +76,7 @@ typedef struct ehci_soft_itd { struct ehci_xfer { struct usbd_xfer xfer; struct usb_task abort_task; - LIST_ENTRY(ehci_xfer) inext; /* list of active xfers */ + TAILQ_ENTRY(ehci_xfer) inext; /* list of active xfers */ ehci_soft_qtd_t *sqtdstart; ehci_soft_qtd_t *sqtdend; ehci_soft_itd_t *itdstart; @@ -138,7 +138,7 @@ typedef struct ehci_softc { */ struct ehci_soft_itd **sc_softitds; - LIST_HEAD(, ehci_xfer) sc_intrhead; + TAILQ_HEAD(, ehci_xfer) sc_intrhead; ehci_soft_qh_t *sc_freeqhs; ehci_soft_qtd_t *sc_freeqtds; |