platform/x86: wmi: Avoid returning AE_OK upon unknown error
authorArmin Wolf <W_Armin@gmx.de>
Thu, 14 Mar 2024 18:45:38 +0000 (19:45 +0100)
committerHans de Goede <hdegoede@redhat.com>
Mon, 25 Mar 2024 14:53:59 +0000 (15:53 +0100)
If an error code other than EINVAL, ENODEV or ETIME is returned
by ec_read()/ec_write(), then AE_OK is wrongly returned.

Fix this by only returning AE_OK if the return code is 0, and
return AE_ERROR otherwise.

Tested on a Dell Inspiron 3505 and a Asus Prime B650-Plus.

Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Signed-off-by: Armin Wolf <W_Armin@gmx.de>
Link: https://lore.kernel.org/r/20240314184538.2933-2-W_Armin@gmx.de
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/x86/wmi.c

index 9602658711cf31366303aeeeacb0f9bc6e46d8d2..060e4236f932b13dc08515e0e1c20e0786885a97 100644 (file)
@@ -1217,8 +1217,10 @@ acpi_wmi_ec_space_handler(u32 function, acpi_physical_address address,
                return AE_NOT_FOUND;
        case -ETIME:
                return AE_TIME;
-       default:
+       case 0:
                return AE_OK;
+       default:
+               return AE_ERROR;
        }
 }