[PATCH] powercap: Check dev_set_name() return value

Ma Ke posted 1 patch 1 year ago
drivers/powercap/powercap_sys.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
[PATCH] powercap: Check dev_set_name() return value
Posted by Ma Ke 1 year ago
It's possible that dev_set_name() returns -ENOMEM. We could catch and
handle it by adding dev_set_name() return value check.

Signed-off-by: Ma Ke <make_ruc2021@163.com>
---
 drivers/powercap/powercap_sys.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/powercap/powercap_sys.c b/drivers/powercap/powercap_sys.c
index 52c32dcbf7d8..11db93b10aa5 100644
--- a/drivers/powercap/powercap_sys.c
+++ b/drivers/powercap/powercap_sys.c
@@ -552,9 +552,12 @@ struct powercap_zone *powercap_register_zone(
 	power_zone->dev_attr_groups[0] = &power_zone->dev_zone_attr_group;
 	power_zone->dev_attr_groups[1] = NULL;
 	power_zone->dev.groups = power_zone->dev_attr_groups;
-	dev_set_name(&power_zone->dev, "%s:%x",
+	result = dev_set_name(&power_zone->dev, "%s:%x",
 					dev_name(power_zone->dev.parent),
 					power_zone->id);
+	if (result)
+		goto err_dev_ret;
+
 	result = device_register(&power_zone->dev);
 	if (result) {
 		put_device(&power_zone->dev);
-- 
2.25.1
Re: [PATCH] powercap: Check dev_set_name() return value
Posted by Rafael J. Wysocki 12 months ago
On Wed, Dec 11, 2024 at 3:07 AM Ma Ke <make_ruc2021@163.com> wrote:
>
> It's possible that dev_set_name() returns -ENOMEM. We could catch and
> handle it by adding dev_set_name() return value check.
>
> Signed-off-by: Ma Ke <make_ruc2021@163.com>
> ---
>  drivers/powercap/powercap_sys.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/powercap/powercap_sys.c b/drivers/powercap/powercap_sys.c
> index 52c32dcbf7d8..11db93b10aa5 100644
> --- a/drivers/powercap/powercap_sys.c
> +++ b/drivers/powercap/powercap_sys.c
> @@ -552,9 +552,12 @@ struct powercap_zone *powercap_register_zone(
>         power_zone->dev_attr_groups[0] = &power_zone->dev_zone_attr_group;
>         power_zone->dev_attr_groups[1] = NULL;
>         power_zone->dev.groups = power_zone->dev_attr_groups;
> -       dev_set_name(&power_zone->dev, "%s:%x",
> +       result = dev_set_name(&power_zone->dev, "%s:%x",
>                                         dev_name(power_zone->dev.parent),
>                                         power_zone->id);
> +       if (result)
> +               goto err_dev_ret;
> +

Why is it necessary to fail in this case?

>         result = device_register(&power_zone->dev);
>         if (result) {
>                 put_device(&power_zone->dev);
> --