[1/2] platform/x86: dell-ddv: Improve error handling

Message ID 20230707010333.12954-1-W_Armin@gmx.de
State New
Headers
Series [1/2] platform/x86: dell-ddv: Improve error handling |

Commit Message

Armin Wolf July 7, 2023, 1:03 a.m. UTC
  If for some reason a external function returns -ENODEV,
no error message is being displayed because the driver
assumes that -ENODEV can only be returned internally if
no sensors, etc where found.
Fix this by explicitly returning 0 in such a case since
missing hardware is no error. Also remove the now obsolete
check for -ENODEV.

Signed-off-by: Armin Wolf <W_Armin@gmx.de>
---
 drivers/platform/x86/dell/dell-wmi-ddv.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

--
2.30.2
  

Comments

Hans de Goede July 11, 2023, 10:07 a.m. UTC | #1
Hi,

On 7/7/23 03:03, Armin Wolf wrote:
> If for some reason a external function returns -ENODEV,
> no error message is being displayed because the driver
> assumes that -ENODEV can only be returned internally if
> no sensors, etc where found.
> Fix this by explicitly returning 0 in such a case since
> missing hardware is no error. Also remove the now obsolete
> check for -ENODEV.
> 
> Signed-off-by: Armin Wolf <W_Armin@gmx.de>

Thank you for your series, I've applied this series to my fixes
branch:
https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=fixes

I will include this series in my next fixes pull-req to Linus
for the current kernel development cycle.

Regards,

Hans

> ---
>  drivers/platform/x86/dell/dell-wmi-ddv.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/platform/x86/dell/dell-wmi-ddv.c b/drivers/platform/x86/dell/dell-wmi-ddv.c
> index 2750dee99c3e..db1e9240dd02 100644
> --- a/drivers/platform/x86/dell/dell-wmi-ddv.c
> +++ b/drivers/platform/x86/dell/dell-wmi-ddv.c
> @@ -616,7 +616,8 @@ static int dell_wmi_ddv_hwmon_add(struct dell_wmi_ddv_data *data)
>  	}
> 
>  	if (index < 2) {
> -		ret = -ENODEV;
> +		/* Finding no available sensors is not an error */
> +		ret = 0;
> 
>  		goto err_release;
>  	}
> @@ -841,13 +842,13 @@ static int dell_wmi_ddv_probe(struct wmi_device *wdev, const void *context)
> 
>  	if (IS_REACHABLE(CONFIG_ACPI_BATTERY)) {
>  		ret = dell_wmi_ddv_battery_add(data);
> -		if (ret < 0 && ret != -ENODEV)
> +		if (ret < 0)
>  			dev_warn(&wdev->dev, "Unable to register ACPI battery hook: %d\n", ret);
>  	}
> 
>  	if (IS_REACHABLE(CONFIG_HWMON)) {
>  		ret = dell_wmi_ddv_hwmon_add(data);
> -		if (ret < 0 && ret != -ENODEV)
> +		if (ret < 0)
>  			dev_warn(&wdev->dev, "Unable to register hwmon interface: %d\n", ret);
>  	}
> 
> --
> 2.30.2
>
  

Patch

diff --git a/drivers/platform/x86/dell/dell-wmi-ddv.c b/drivers/platform/x86/dell/dell-wmi-ddv.c
index 2750dee99c3e..db1e9240dd02 100644
--- a/drivers/platform/x86/dell/dell-wmi-ddv.c
+++ b/drivers/platform/x86/dell/dell-wmi-ddv.c
@@ -616,7 +616,8 @@  static int dell_wmi_ddv_hwmon_add(struct dell_wmi_ddv_data *data)
 	}

 	if (index < 2) {
-		ret = -ENODEV;
+		/* Finding no available sensors is not an error */
+		ret = 0;

 		goto err_release;
 	}
@@ -841,13 +842,13 @@  static int dell_wmi_ddv_probe(struct wmi_device *wdev, const void *context)

 	if (IS_REACHABLE(CONFIG_ACPI_BATTERY)) {
 		ret = dell_wmi_ddv_battery_add(data);
-		if (ret < 0 && ret != -ENODEV)
+		if (ret < 0)
 			dev_warn(&wdev->dev, "Unable to register ACPI battery hook: %d\n", ret);
 	}

 	if (IS_REACHABLE(CONFIG_HWMON)) {
 		ret = dell_wmi_ddv_hwmon_add(data);
-		if (ret < 0 && ret != -ENODEV)
+		if (ret < 0)
 			dev_warn(&wdev->dev, "Unable to register hwmon interface: %d\n", ret);
 	}