diff options
author | Zheng Yongjun <zhengyongjun3@huawei.com> | 2022-03-17 16:16:13 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2022-05-25 10:14:32 +0300 |
commit | f0213894337afa0b5367ea11c6879c27ece556c7 (patch) | |
tree | a9f51816ccebfa865463ab196b4734e8cd041e70 /drivers/crypto | |
parent | 8c015cd524424e79b31270bd3dbdac9612c6f7db (diff) | |
download | linux-f0213894337afa0b5367ea11c6879c27ece556c7.tar.xz |
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 <zhengyongjun3@huawei.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers/crypto')
-rw-r--r-- | drivers/crypto/stm32/stm32-crc32.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/crypto/stm32/stm32-crc32.c b/drivers/crypto/stm32/stm32-crc32.c index fb640e0ea614..2ecc970f5cae 100644 --- a/drivers/crypto/stm32/stm32-crc32.c +++ b/drivers/crypto/stm32/stm32-crc32.c @@ -332,8 +332,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); |