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@xxxxxxxx> --- 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); devres_free(ptr); return tzd; } -- 2.34.1