dmaengine: imx-sdma: add terminated list for freed descriptor in worker
authorRobin Gong <yibin.gong@nxp.com>
Wed, 14 Jul 2021 10:20:52 +0000 (18:20 +0800)
committerShawn Guo <shawnguo@kernel.org>
Fri, 23 Jul 2021 03:20:06 +0000 (11:20 +0800)
commit4e2b10be1f4fe06c9deaaf2c03a05abcff191791
treee6d8b67378953fcbb4726b9fb24eedba966c92a8
parentb98ce2f4e32befa4999e180f48031d814f2a401c
dmaengine: imx-sdma: add terminated list for freed descriptor in worker

Add terminated list for keeping descriptor so that it could be freed in
worker without any potential involving next descriptor raised up before
this descriptor freed, because vchan_get_all_descriptors get all
descriptors including the last terminated descriptor and the next
descriptor, hence, the next descriptor maybe freed unexpectly when it's
done in worker without this patch.
https://www.spinics.net/lists/dmaengine/msg23367.html

Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Reported-by: Richard Leitner <richard.leitner@skidata.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
drivers/dma/imx-sdma.c