[RESEND,1/9] thermal/hwmon: Add error information printing for devm_thermal_add_hwmon_sysfs()

Message ID 20230613095624.78789-1-frank.li@vivo.com
State New
Headers
Series [RESEND,1/9] thermal/hwmon: Add error information printing for devm_thermal_add_hwmon_sysfs() |

Commit Message

李扬韬 June 13, 2023, 9:56 a.m. UTC
  Ensure that all error handling branches print error information. In this
way, when this function fails, the upper-layer functions can directly
return an error code without missing debugging information. Otherwise,
the error message will be printed redundantly or missing.

Signed-off-by: Yangtao Li <frank.li@vivo.com>
---
Resend patchset so that the changes to thermal/hwmon.c are copied to everyone.
 drivers/thermal/thermal_hwmon.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
  

Comments

Daniel Lezcano June 13, 2023, 10:19 a.m. UTC | #1
On 13/06/2023 11:56, Yangtao Li wrote:
> Ensure that all error handling branches print error information. In this
> way, when this function fails, the upper-layer functions can directly
> return an error code without missing debugging information. Otherwise,
> the error message will be printed redundantly or missing.
> 
> Signed-off-by: Yangtao Li <frank.li@vivo.com>
> ---
> Resend patchset so that the changes to thermal/hwmon.c are copied to everyone.
>   drivers/thermal/thermal_hwmon.c | 5 ++++-
>   1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/thermal/thermal_hwmon.c b/drivers/thermal/thermal_hwmon.c
> index fbe55509e307..a580add5a2f6 100644
> --- a/drivers/thermal/thermal_hwmon.c
> +++ b/drivers/thermal/thermal_hwmon.c
> @@ -271,11 +271,14 @@ int devm_thermal_add_hwmon_sysfs(struct device *dev, struct thermal_zone_device
>   
>   	ptr = devres_alloc(devm_thermal_hwmon_release, sizeof(*ptr),
>   			   GFP_KERNEL);
> -	if (!ptr)
> +	if (!ptr) {
> +		dev_err(dev, "Failed to allocate device resource data\n");
>   		return -ENOMEM;
> +	}

When an allocation fails, there is a callstack showed. It is not 
necessary to print an error in this case.

>   
>   	ret = thermal_add_hwmon_sysfs(tz);
>   	if (ret) {
> +		dev_err(dev, "Failed to add hwmon sysfs attributes\n");
>   		devres_free(ptr);
>   		return ret;
>   	}

That should not display an error. The call site will take care of that.
  
Daniel Lezcano June 13, 2023, 10:20 a.m. UTC | #2
On 13/06/2023 11:56, Yangtao Li wrote:
> Ensure that all error handling branches print error information. In this
> way, when this function fails, the upper-layer functions can directly
> return an error code without missing debugging information. Otherwise,
> the error message will be printed redundantly or missing.
> 
> Signed-off-by: Yangtao Li <frank.li@vivo.com>
> ---
> Resend patchset so that the changes to thermal/hwmon.c are copied to everyone.
>   drivers/thermal/thermal_hwmon.c | 5 ++++-
>   1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/thermal/thermal_hwmon.c b/drivers/thermal/thermal_hwmon.c
> index fbe55509e307..a580add5a2f6 100644
> --- a/drivers/thermal/thermal_hwmon.c
> +++ b/drivers/thermal/thermal_hwmon.c
> @@ -271,11 +271,14 @@ int devm_thermal_add_hwmon_sysfs(struct device *dev, struct thermal_zone_device
>   
>   	ptr = devres_alloc(devm_thermal_hwmon_release, sizeof(*ptr),
>   			   GFP_KERNEL);
> -	if (!ptr)
> +	if (!ptr) {
> +		dev_err(dev, "Failed to allocate device resource data\n");
>   		return -ENOMEM;
> +	}
>   
>   	ret = thermal_add_hwmon_sysfs(tz);
>   	if (ret) {
> +		dev_err(dev, "Failed to add hwmon sysfs attributes\n");
>   		devres_free(ptr);
>   		return ret;
>   	}

Sorry, I commented to quickly this patch. Please discard my last 
comment. I think it is a good improvement.

Can you replace the dev_err to dev_warn ?

Thanks
  
李扬韬 June 13, 2023, 11:57 a.m. UTC | #3
On 2023/6/13 18:20, Daniel Lezcano wrote:

> On 13/06/2023 11:56, Yangtao Li wrote:
>> Ensure that all error handling branches print error information. In this
>> way, when this function fails, the upper-layer functions can directly
>> return an error code without missing debugging information. Otherwise,
>> the error message will be printed redundantly or missing.
>>
>> Signed-off-by: Yangtao Li <frank.li@vivo.com>
>> ---
>> Resend patchset so that the changes to thermal/hwmon.c are copied to 
>> everyone.
>>   drivers/thermal/thermal_hwmon.c | 5 ++++-
>>   1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/thermal/thermal_hwmon.c 
>> b/drivers/thermal/thermal_hwmon.c
>> index fbe55509e307..a580add5a2f6 100644
>> --- a/drivers/thermal/thermal_hwmon.c
>> +++ b/drivers/thermal/thermal_hwmon.c
>> @@ -271,11 +271,14 @@ int devm_thermal_add_hwmon_sysfs(struct device 
>> *dev, struct thermal_zone_device
>>         ptr = devres_alloc(devm_thermal_hwmon_release, sizeof(*ptr),
>>                  GFP_KERNEL);
>> -    if (!ptr)
>> +    if (!ptr) {
>> +        dev_err(dev, "Failed to allocate device resource data\n");
>>           return -ENOMEM;
>> +    }
>>         ret = thermal_add_hwmon_sysfs(tz);
>>       if (ret) {
>> +        dev_err(dev, "Failed to add hwmon sysfs attributes\n");
>>           devres_free(ptr);
>>           return ret;
>>       }
>
> Sorry, I commented to quickly this patch. Please discard my last 
> comment. I think it is a good improvement.
>
> Can you replace the dev_err to dev_warn ?

Based on the thermal/tuxsuite branch of daniel.lezcano/linux.git, patch 
v3 was sent.

Included [1] for cleanup thermal-generic-adc.

[1] 
https://patchwork.kernel.org/project/linux-pm/patch/20230613093054.2067340-1-wenst@chromium.org/


Thx,

Yangtao


> Thanks
>
  

Patch

diff --git a/drivers/thermal/thermal_hwmon.c b/drivers/thermal/thermal_hwmon.c
index fbe55509e307..a580add5a2f6 100644
--- a/drivers/thermal/thermal_hwmon.c
+++ b/drivers/thermal/thermal_hwmon.c
@@ -271,11 +271,14 @@  int devm_thermal_add_hwmon_sysfs(struct device *dev, struct thermal_zone_device
 
 	ptr = devres_alloc(devm_thermal_hwmon_release, sizeof(*ptr),
 			   GFP_KERNEL);
-	if (!ptr)
+	if (!ptr) {
+		dev_err(dev, "Failed to allocate device resource data\n");
 		return -ENOMEM;
+	}
 
 	ret = thermal_add_hwmon_sysfs(tz);
 	if (ret) {
+		dev_err(dev, "Failed to add hwmon sysfs attributes\n");
 		devres_free(ptr);
 		return ret;
 	}