When pm_runtime_get_sync fails, it forgets to invoke pm_runtime_disable in the label err_rpm. Fix this by moving pm_runtime_disable to label err_rpm. Fixes: 9b3b8171f7f4 ("dmaengine: sprd: Add Spreadtrum DMA driver") Signed-off-by: Dongliang Mu <mudongliangabcd@xxxxxxxxx> --- drivers/dma/sprd-dma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/dma/sprd-dma.c b/drivers/dma/sprd-dma.c index 4357d2395e6b..ae8b2cfebfee 100644 --- a/drivers/dma/sprd-dma.c +++ b/drivers/dma/sprd-dma.c @@ -1226,8 +1226,8 @@ static int sprd_dma_probe(struct platform_device *pdev) dma_async_device_unregister(&sdev->dma_dev); err_register: pm_runtime_put_noidle(&pdev->dev); - pm_runtime_disable(&pdev->dev); err_rpm: + pm_runtime_disable(&pdev->dev); sprd_dma_disable(sdev); return ret; } -- 2.25.1