dmaengine: mmp_pdma: fix reference count leaks in mmp_pdma_probe
authorXin Xiong <xiongx18@fudan.edu.cn>
Sat, 11 Sep 2021 07:05:33 +0000 (15:05 +0800)
committerVinod Koul <vkoul@kernel.org>
Mon, 25 Oct 2021 06:42:58 +0000 (12:12 +0530)
commit9bf9e0b44104d05b21761441227ae566c732ecb9
treeac4976190f60876ef9b7080171922d748fd4182e
parentfe14c67267886e3af3c377a7bee4e6f915778636
dmaengine: mmp_pdma: fix reference count leaks in mmp_pdma_probe

The issue happens in an error handling path. If
of_dma_controller_register() fails, the function simply prints error
messages and returns error code, without decrementing the reference
count of pdev->device incremented earlier by
dma_async_device_register(), which may result in refcount leaks.

Fix it by invoking dma_async_device_unregister() before returning the
error code.

Signed-off-by: Xin Xiong <xiongx18@fudan.edu.cn>
Signed-off-by: Xiyu Yang <xiyuyang19@fudan.edu.cn>
Signed-off-by: Xin Tan <tanxin.ctf@gmail.com>
Link: https://lore.kernel.org/r/20210911070533.3114-1-xiongx18@fudan.edu.cn
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/mmp_pdma.c