Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys/dev/usb



On Sat, Jun 28, 2008 at 05:42:53PM +0000, Manuel Bouyer wrote:
 > Log Message:
 > Add appropriate bus_dmamap_sync() calls to uhci(4), ohci(4) and ehci(4),
 > as proposed on tech-kern@.
 > While all DMA memory used in the USB framework is mapped BUS_DMAMAP_COHERENT
 > (including data memory, which is memcpy'd from/to USB-private buffers),
 > the CPU can reorder loads or stores from/to main memory, causing the
 > controller to have an incoherent view of the DMA descriptors lists for a
 > short time. bus_dmamap_sync() should contain memory barriers that prevents
 > the CPU from reordering load/store. Note that BUS_DMAMAP_COHERENT is
 > still required for the DMA descriptor lists - these can't work properly
 > with software cache coherency.
 > This fixes "host controller process error/host controller halted" errors
 > I'm occasionally seeing with a umodem device on uhci on x86.
 > Thanks to Michael Lorenz for testing it on his O2, and Izumi Tsutsui on
 > his Cobalt Qube 2700.

Do you think this is likely to help with kern/37590 and its relatives?

-- 
David A. Holland
dholland%netbsd.org@localhost


Home | Main Index | Thread Index | Old Index