cvs commit: src/sys/bus/usb ohci.c

Matthew Dillon dillon at crater.dragonflybsd.org
Mon Jul 18 12:21:14 PDT 2005


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 at 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





More information about the Commits mailing list