Re: [PATCH 4/9] hwrng: omap - Use the managed device resource API for registration

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

Le 06/09/2016 18:31, PrasannaKumar Muralidharan a écrit :
Use devm_hwrng_register instead of hwrng_register. It avoids the need
to handle unregistration explicitly from the remove function.

Signed-off-by: Romain Perier <romain.perier@xxxxxxxxxxxxxxxxxx>
---
  drivers/char/hw_random/omap-rng.c | 4 +---
  1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/char/hw_random/omap-rng.c b/drivers/char/hw_random/omap-rng.c
index d47b24d..171c3e8 100644
--- a/drivers/char/hw_random/omap-rng.c
+++ b/drivers/char/hw_random/omap-rng.c
@@ -381,7 +381,7 @@ static int omap_rng_probe(struct platform_device *pdev)
         if (ret)
                 goto err_ioremap;

-       ret = hwrng_register(&omap_rng_ops);
+       ret = devm_hwrng_register(dev, &omap_rng_ops);
         if (ret)
                 goto err_register;

@@ -402,8 +402,6 @@ static int omap_rng_remove(struct platform_device *pdev)
  {
         struct omap_rng_dev *priv = platform_get_drvdata(pdev);

-       hwrng_unregister(&omap_rng_ops);
-
         priv->pdata->cleanup(priv);

         pm_runtime_put_sync(&pdev->dev);
--

If devm_hwrng_register is used hwrng_unregister will be called after
pm_runtime_disable is called. If RNG device is in use calling
omap_rng_remove may not work properly.


The case where the remove function is called is if you unbind the driver by hand or you call rmmod while the RNG device is used. I don't think that the kernel will call platform->remove is the device is in use (so /dev/hwrng). I mean the argument that the unregister function is called after pm_runtime_disable is correct, but I don't think that the remove function might be called while the device is in use. There is necessarily a mutual exclusive case between "use the device" and "call the remove function of the device". However, I am open to suggestions.

Regards,
--
Romain Perier, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]

  Powered by Linux