2023-07-07 01:43:35

by Armin Wolf

[permalink] [raw]
Subject: [PATCH 1/2] platform/x86: dell-ddv: Improve error handling

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 <[email protected]>
---
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



2023-07-11 10:19:14

by Hans de Goede

[permalink] [raw]
Subject: Re: [PATCH 1/2] platform/x86: dell-ddv: Improve error handling

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 <[email protected]>

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
>