Re: [PATCH 3/6] hwrng: imx-rngc - use devres for registration

From: PrasannaKumar Muralidharan
Date: Wed Feb 12 2020 - 11:14:08 EST


Hi Martin,

On Tue, 28 Jan 2020 at 16:31, Martin Kaiser <martin@xxxxxxxxx> wrote:
>
> Use devres to register the rngc with the hwrng core. Drop the explicit
> deregistration.
>
> Signed-off-by: Martin Kaiser <martin@xxxxxxxxx>
> ---
> drivers/char/hw_random/imx-rngc.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/drivers/char/hw_random/imx-rngc.c b/drivers/char/hw_random/imx-rngc.c
> index 903894518c8d..1381ddd5b891 100644
> --- a/drivers/char/hw_random/imx-rngc.c
> +++ b/drivers/char/hw_random/imx-rngc.c
> @@ -263,7 +263,7 @@ static int imx_rngc_probe(struct platform_device *pdev)
> }
> }
>
> - ret = hwrng_register(&rngc->rng);
> + ret = devm_hwrng_register(&pdev->dev, &rngc->rng);
> if (ret) {
> dev_err(&pdev->dev, "FSL RNGC registering failed (%d)\n", ret);
> goto err;
> @@ -282,8 +282,6 @@ static int __exit imx_rngc_remove(struct platform_device *pdev)
> {
> struct imx_rngc *rngc = platform_get_drvdata(pdev);
>
> - hwrng_unregister(&rngc->rng);
> -
> clk_disable_unprepare(rngc->clk);
>
> return 0;
> --
> 2.20.1
>

After imx_rngc_remove function hwrng_unregister will get called. This
leaves a window where the clock to rng hardware block is disabled but
still user space can access it via /dev/hwrng. This does not look
right, please revisit the patch.

Regards,
PrasannaKumar