X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=drivers%2Fdma%2Fedma.c;h=bf09db7ca9ee9c691bcb59888575d2679b4ddd3e;hb=3333222484dc7e46fd17cc1d394088fb0d963e6c;hp=0ea813d98998d93b7d2ee0fdc5d82d407be5538b;hpb=b53c7582805b10d6a32e88e22d16dc469e66a37a;p=firefly-linux-kernel-4.4.55.git diff --git a/drivers/dma/edma.c b/drivers/dma/edma.c index 0ea813d98998..bf09db7ca9ee 100644 --- a/drivers/dma/edma.c +++ b/drivers/dma/edma.c @@ -260,6 +260,13 @@ static int edma_terminate_all(struct dma_chan *chan) */ if (echan->edesc) { int cyclic = echan->edesc->cyclic; + + /* + * free the running request descriptor + * since it is not in any of the vdesc lists + */ + edma_desc_free(&echan->edesc->vdesc); + echan->edesc = NULL; edma_stop(echan->ch_num); /* Move the cyclic channel back to default queue */