dmaengine: sprd: Fix the possible memory leak issue
authorBaolin Wang <baolin.wang@linaro.org>
Wed, 9 Oct 2019 09:11:30 +0000 (17:11 +0800)
committerVinod Koul <vkoul@kernel.org>
Tue, 15 Oct 2019 10:17:24 +0000 (15:47 +0530)
commitec1ac309596a7bdf206743b092748205f6cd5720
treea8eb84c5ba3e1ec2a6b848c9a96292ea61810519
parent6c6de1ddb1be3840f2ed5cc9d009a622720940c9
dmaengine: sprd: Fix the possible memory leak issue

If we terminate the channel to free all descriptors associated with this
channel, we will leak the memory of current descriptor if the current
descriptor is not completed, since it had been deteled from the desc_issued
list and have not been added into the desc_completed list.

Thus we should check if current descriptor is completed or not, when freeing
the descriptors associated with one channel, if not, we should free it to
avoid this issue.

Fixes: 9b3b8171f7f4 ("dmaengine: sprd: Add Spreadtrum DMA driver")
Reported-by: Zhenfang Wang <zhenfang.wang@unisoc.com>
Tested-by: Zhenfang Wang <zhenfang.wang@unisoc.com>
Signed-off-by: Baolin Wang <baolin.wang@linaro.org>
Link: https://lore.kernel.org/r/170dbbc6d5366b6fa974ce2d366652e23a334251.1570609788.git.baolin.wang@linaro.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/sprd-dma.c