On Mon, May 10, 2010 at 17:22, Andrew Morton wrote: > On Mon, 10 May 2010 12:42:34 +0200 "Oskar Schirmer" wrote: >> With dma based spi transmission, data corruption >> is observed occasionally. With dma buffers located >> right next to msg and xfer fields, cache lines >> correctly flushed in preparation for dma usage >> may be polluted again when writing to fields >> in the same cache line. >> >> Make sure cache fields used with dma do not >> share cache lines with fields changed during >> dma handling. As both fields are part of a >> struct that is allocated via kzalloc, thus >> cache aligned, moving the fields to the 1st >> position and insert padding for alignment >> does the job. > > This sounds odd. Doesn't it imply that some code somewhere is missing > some DMA synchronisation actions? i think it's kind of dumb and induces this sort of bug semi-frequently, but it is what the current DMA API requires (see like Documentation/spi/spi-summary) -mike -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html