[PATCH 01/12] thermal: of: Add error handling in devm_thermal_*_register()
Guenter Roeck
linux at roeck-us.net
Fri Sep 5 07:28:42 PDT 2025
On 9/5/25 00:23, Xichao Zhao wrote:
> devm_thermal_of_zone_register() does not print any error message
> when registering a thermal zone with a device node sensor fails
> and allocating device resource data fails.
>
> This forces each driver to implement redundant error logging.
> Additionally, when upper-layer functions propagate these errors
> without logging, critical debugging information is lost.
>
> Add dev_err_probe() in devm_thermal_of_zone_register() to unify
> error reporting.
>
> Signed-off-by: Xichao Zhao <zhao.xichao at vivo.com>
> ---
> drivers/thermal/thermal_of.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/thermal/thermal_of.c b/drivers/thermal/thermal_of.c
> index 1a51a4d240ff..8fe0ad402579 100644
> --- a/drivers/thermal/thermal_of.c
> +++ b/drivers/thermal/thermal_of.c
> @@ -475,11 +475,15 @@ struct thermal_zone_device *devm_thermal_of_zone_register(struct device *dev, in
>
> ptr = devres_alloc(devm_thermal_of_zone_release, sizeof(*ptr),
> GFP_KERNEL);
> - if (!ptr)
> + if (!ptr) {
> + dev_err(dev, "Failed to allocate device resource data\n");
> return ERR_PTR(-ENOMEM);
> + }
>
> tzd = thermal_of_zone_register(dev->of_node, sensor_id, data, ops);
> if (IS_ERR(tzd)) {
> + dev_err_probe(dev, PTR_ERR(tzd),
> + "Failed to register thermal zone sensor[%d]\n", sensor_id);
This will print an error message even if the problem is (for the calling code,
such as hwmon) only informational.
Guenter
More information about the linux-amlogic
mailing list