From: Zheng Yongjun Date: Thu, 17 Mar 2022 13:16:13 +0000 (+0000) Subject: crypto: stm32 - fix reference leak in stm32_crc_remove X-Git-Tag: v4.19.245~40 X-Git-Url: https://git.fsl.cs.sunysb.edu/?a=commitdiff_plain;h=7392675e4ac127bc8e1706dfe604df93d6297197;p=wrapfs-4.19.y.git crypto: stm32 - fix reference leak in stm32_crc_remove [ Upstream commit e9a36feecee0ee5845f2e0656f50f9942dd0bed3 ] pm_runtime_get_sync() will increment pm usage counter even it failed. Forgetting to call pm_runtime_put_noidle will result in reference leak in stm32_crc_remove, so we should fix it. Signed-off-by: Zheng Yongjun Signed-off-by: Herbert Xu Signed-off-by: Sasha Levin --- diff --git a/drivers/crypto/stm32/stm32_crc32.c b/drivers/crypto/stm32/stm32_crc32.c index 6848f34a9e66..de645bf84980 100644 --- a/drivers/crypto/stm32/stm32_crc32.c +++ b/drivers/crypto/stm32/stm32_crc32.c @@ -334,8 +334,10 @@ static int stm32_crc_remove(struct platform_device *pdev) struct stm32_crc *crc = platform_get_drvdata(pdev); int ret = pm_runtime_get_sync(crc->dev); - if (ret < 0) + if (ret < 0) { + pm_runtime_put_noidle(crc->dev); return ret; + } spin_lock(&crc_list.lock); list_del(&crc->list);