2018-12-26 17:25:39

by Aditya Pakki

[permalink] [raw]
Subject: [PATCH] char: hw_random: Fix missing check during driver release

devres_release can return -ENOENT if the device is not freed. The fix
throws a warning consistent with other invocations.

Signed-off-by: Aditya Pakki <[email protected]>
---
drivers/char/hw_random/core.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/char/hw_random/core.c b/drivers/char/hw_random/core.c
index 95be7228f327..582d983fa93f 100644
--- a/drivers/char/hw_random/core.c
+++ b/drivers/char/hw_random/core.c
@@ -578,7 +578,11 @@ EXPORT_SYMBOL_GPL(devm_hwrng_register);

void devm_hwrng_unregister(struct device *dev, struct hwrng *rng)
{
- devres_release(dev, devm_hwrng_release, devm_hwrng_match, rng);
+ int rc;
+
+ rc = devres_release(dev, devm_hwrng_release, devm_hwrng_match, rng);
+ if (rc)
+ WARN_ON(rc);
}
EXPORT_SYMBOL_GPL(devm_hwrng_unregister);

--
2.17.1



2018-12-26 17:45:51

by Michael S. Tsirkin

[permalink] [raw]
Subject: Re: [PATCH] char: hw_random: Fix missing check during driver release

On Wed, Dec 26, 2018 at 11:23:31AM -0600, Aditya Pakki wrote:
> devres_release can return -ENOENT if the device is not freed. The fix
> throws a warning consistent with other invocations.
>
> Signed-off-by: Aditya Pakki <[email protected]>

Well why not

Acked-by: Michael S. Tsirkin <[email protected]>


> ---
> drivers/char/hw_random/core.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/char/hw_random/core.c b/drivers/char/hw_random/core.c
> index 95be7228f327..582d983fa93f 100644
> --- a/drivers/char/hw_random/core.c
> +++ b/drivers/char/hw_random/core.c
> @@ -578,7 +578,11 @@ EXPORT_SYMBOL_GPL(devm_hwrng_register);
>
> void devm_hwrng_unregister(struct device *dev, struct hwrng *rng)
> {
> - devres_release(dev, devm_hwrng_release, devm_hwrng_match, rng);
> + int rc;
> +
> + rc = devres_release(dev, devm_hwrng_release, devm_hwrng_match, rng);
> + if (rc)
> + WARN_ON(rc);
> }
> EXPORT_SYMBOL_GPL(devm_hwrng_unregister);
>
> --
> 2.17.1

2018-12-26 22:38:41

by Michael Büsch

[permalink] [raw]
Subject: Re: [PATCH] char: hw_random: Fix missing check during driver release

On Wed, 26 Dec 2018 11:23:31 -0600
Aditya Pakki <[email protected]> wrote:

> devres_release can return -ENOENT if the device is not freed. The fix
> throws a warning consistent with other invocations.
>
> Signed-off-by: Aditya Pakki <[email protected]>
> ---
> drivers/char/hw_random/core.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/char/hw_random/core.c b/drivers/char/hw_random/core.c
> index 95be7228f327..582d983fa93f 100644
> --- a/drivers/char/hw_random/core.c
> +++ b/drivers/char/hw_random/core.c
> @@ -578,7 +578,11 @@ EXPORT_SYMBOL_GPL(devm_hwrng_register);
>
> void devm_hwrng_unregister(struct device *dev, struct hwrng *rng)
> {
> - devres_release(dev, devm_hwrng_release, devm_hwrng_match, rng);
> + int rc;
> +
> + rc = devres_release(dev, devm_hwrng_release, devm_hwrng_match, rng);
> + if (rc)

The if statement is redundant and can be removed.

> + WARN_ON(rc);
> }
> EXPORT_SYMBOL_GPL(devm_hwrng_unregister);
>

--
Michael


Attachments:
(No filename) (849.00 B)
OpenPGP digital signature