> -----Original Message----- > From: Dave Jiang [mailto:dave.jiang@xxxxxxxxx] > Sent: Monday, July 25, 2016 12:34 PM > To: vinod.koul@xxxxxxxxx > Cc: dmaengine@xxxxxxxxxxxxxxx; Li Yang <leoli@xxxxxxxxxxxxx> > Subject: [PATCH 1/5] dmaengine: fsldma: move unmap to before callback > > Completion callback should happen after dma_descriptor_unmap() has > happened. This allow the cache invalidate to happen and ensure that the data > accessed by the upper layer is in memory that was from DMA rather than stale > data. On some architecture this is done by the hardware, however we should > make the code consistent to not cause confusion. > > Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx> > Cc: Li Yang <leoli@xxxxxxxxxxxxx> Acked-by: Li Yang <leoyang.li@xxxxxxx> > --- > drivers/dma/fsldma.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c index > 8c096c3..80bec04 100644 > --- a/drivers/dma/fsldma.c > +++ b/drivers/dma/fsldma.c > @@ -516,9 +516,9 @@ static dma_cookie_t > fsldma_run_tx_complete_actions(struct fsldma_chan *chan, > if (txd->cookie > 0) { > ret = txd->cookie; > > + dma_descriptor_unmap(txd); > /* Run the link descriptor callback function */ > dmaengine_desc_get_callback_invoke(txd, NULL); > - dma_descriptor_unmap(txd); > } > > /* Run any dependencies */ ��.n��������+%������w��{.n��������)�)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥