DragonFly BSD
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


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Mon, 18 Jul 2005 12:20:46 -0700 (PDT)

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]