> The second restriction is that some architectures don't maintain their > cache coherently when DMA takes place. This means that input buffers > _must_ be allocated in a region containing no data the CPU will touch > during the input operation. For if the CPU touches data D lying in the > same cacheline as input buffer B while the input operation is underway, > the old contents of B will get loaded into the cache along with D. > Then after the input completes, when the CPU tries to read the new data in > B it will see the stale contents in the cache instead.
Worse, if you dirty the cacheline. Old content can be written back destroying data already DMAed in. Regards Oliver ------------------------------------------------------- This SF.net email is sponsored by: Etnus, makers of TotalView, The best thread debugger on the planet. Designed with thread debugging features you've never dreamed of, try TotalView 6 free at www.etnus.com. _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel