Commit 48a61e1e authored by Krzysztof Kozlowski's avatar Krzysztof Kozlowski Committed by Herbert Xu

hwrng: exynos - Disable runtime PM on probe failure

Add proper error path (for disabling runtime PM) when registering of
hwrng fails.

Fixes: b329669e ("hwrng: exynos - Add support for Exynos random number generator")
Signed-off-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent f1925d78
...@@ -119,6 +119,7 @@ static int exynos_rng_probe(struct platform_device *pdev) ...@@ -119,6 +119,7 @@ static int exynos_rng_probe(struct platform_device *pdev)
{ {
struct exynos_rng *exynos_rng; struct exynos_rng *exynos_rng;
struct resource *res; struct resource *res;
int ret;
exynos_rng = devm_kzalloc(&pdev->dev, sizeof(struct exynos_rng), exynos_rng = devm_kzalloc(&pdev->dev, sizeof(struct exynos_rng),
GFP_KERNEL); GFP_KERNEL);
...@@ -146,7 +147,13 @@ static int exynos_rng_probe(struct platform_device *pdev) ...@@ -146,7 +147,13 @@ static int exynos_rng_probe(struct platform_device *pdev)
pm_runtime_use_autosuspend(&pdev->dev); pm_runtime_use_autosuspend(&pdev->dev);
pm_runtime_enable(&pdev->dev); pm_runtime_enable(&pdev->dev);
return devm_hwrng_register(&pdev->dev, &exynos_rng->rng); ret = devm_hwrng_register(&pdev->dev, &exynos_rng->rng);
if (ret) {
pm_runtime_dont_use_autosuspend(&pdev->dev);
pm_runtime_disable(&pdev->dev);
}
return ret;
} }
static int __maybe_unused exynos_rng_runtime_suspend(struct device *dev) static int __maybe_unused exynos_rng_runtime_suspend(struct device *dev)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment