@@ -971,6 +971,7 @@ static int ideapad_acpi_add(struct platform_device *pdev)
int cfg;
struct ideapad_private *priv;
struct acpi_device *adev;
+ acpi_status acpi_err;
ret = acpi_bus_get_device(ACPI_HANDLE(&pdev->dev), &adev);
if (ret)
@@ -1018,22 +1019,26 @@ static int ideapad_acpi_add(struct platform_device *pdev)
if (ret && ret != -ENODEV)
goto backlight_failed;
}
- ret = acpi_install_notify_handler(adev->handle,
- ACPI_DEVICE_NOTIFY, ideapad_acpi_notify, priv);
- if (ret)
+ acpi_err = acpi_install_notify_handler(adev->handle,
+ ACPI_DEVICE_NOTIFY, ideapad_acpi_notify, priv);
+ if (ACPI_FAILURE(acpi_err)) {
+ ret = -EIO;
goto notification_failed;
+ }
#if IS_ENABLED(CONFIG_ACPI_WMI)
for (i = 0; i < ARRAY_SIZE(ideapad_wmi_fnesc_events); i++) {
- ret = wmi_install_notify_handler(ideapad_wmi_fnesc_events[i],
- ideapad_wmi_notify, priv);
- if (ret == AE_OK) {
+ acpi_err = wmi_install_notify_handler(ideapad_wmi_fnesc_events[i],
+ ideapad_wmi_notify, priv);
+ if (ACPI_SUCCESS(acpi_err)) {
priv->fnesc_guid = ideapad_wmi_fnesc_events[i];
break;
}
}
- if (ret != AE_OK && ret != AE_NOT_EXIST)
+ if (ACPI_FAILURE(acpi_err) && acpi_err != AE_NOT_EXIST) {
+ ret = -EIO;
goto notification_failed_wmi;
+ }
#endif
return 0;
Use a variable with type `acpi_status` to store the return value of ACPI methods instead of a plain `int`. And use ACPI_{SUCCESS,FAILURE} macros where possible instead of direct comparison. Signed-off-by: Barnabás Pőcze <pobrn@protonmail.com>