DragonFly commits List (threaded) for 2005-07
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
cvs commit: src/sys/bus/usb ohci.c
dillon 2005/07/18 12:20:46 PDT
DragonFly src repository
Modified files:
sys/bus/usb ohci.c
Log:
Fix numerous extremely serious bugs in OHCI's iso-synchronous code. I'm
not even sure if the fixes are entirely correct because the code is badly
written and totally undocumented. But they seem to help.
* Fix up list linkages prior to calling ohci_free_sitd(), since
ohci_free_sitd() destroys the nextitd field. This was causing a huge
amount of corruption of the SITD free list *AND* the xfer SITD list,
particularly prevaliant when multi-record transfers are executed
(e.g. uaudio).
* Properly (I hope) adjust the pipe tail pointer in numerous situations.
There are a number of unconditional references and assumptions as to the
validity of pipe->tail.itd and it must be maintained at all times.
In particular, an aborted or timed-out transfer would corrupt it.
Reported-by: Michal Belczyk <belczyk@xxxxxxxxxxxxx>
Revision Changes Path
1.12 +59 -12 src/sys/bus/usb/ohci.c
http://www.dragonflybsd.org/cvsweb/src/sys/bus/usb/ohci.c.diff?r1=1.11&r2=1.12&f=u
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]