mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-06 01:09:08 +00:00
dmaengine: bcm2835: do not call vchan_vdesc_fini() with lock held
vchan_vdesc_fini() can't be called locked. Instead, call vchan_terminate_vdesc() which delays the freeing of the descriptor to vchan_synchronize(). Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Link: https://lore.kernel.org/r/20191216105328.15198-2-s.hauer@pengutronix.de Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
08baca4280
commit
5c8aacbbb3
@ -797,10 +797,7 @@ static int bcm2835_dma_terminate_all(struct dma_chan *chan)
|
|||||||
|
|
||||||
/* stop DMA activity */
|
/* stop DMA activity */
|
||||||
if (c->desc) {
|
if (c->desc) {
|
||||||
if (c->desc->vd.tx.flags & DMA_PREP_INTERRUPT)
|
|
||||||
vchan_terminate_vdesc(&c->desc->vd);
|
vchan_terminate_vdesc(&c->desc->vd);
|
||||||
else
|
|
||||||
vchan_vdesc_fini(&c->desc->vd);
|
|
||||||
c->desc = NULL;
|
c->desc = NULL;
|
||||||
bcm2835_dma_abort(c);
|
bcm2835_dma_abort(c);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user