On Monday 28 April 2014 04:19 PM, Thomas Gleixner wrote: > As Joel pointed out, edma_read_position() uses memcpy_fromio() to read > the parameter ram. That's not synchronized with the internal update as > it does a byte by byte copy. We need to do a 32bit read to get a > consistent value. > > Further reading destination and source is pointless. In DEV_TO_MEM > transfers we are only interested in the destination, in MEM_TO_DEV we > care about the source. In MEM_TO_MEM it really does not matter which > one you read. > > Simple solution: Remove the pointers, select dest/source via a bool > and return the read value. > Remove the export of this function while at it. The only potential > user is the dmaengine and that's always builtin. While this is true today, there are other DMA drivers which are modules. > > Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Irrespective of above, Acked-by: Sekhar Nori <nsekhar@xxxxxx> Thanks, Sekhar -- To unsubscribe from this list: send the line "unsubscribe dmaengine" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html