]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
platform/x86: hp-bioscfg: Use wmi_instance_count()
authorArmin Wolf <W_Armin@gmx.de>
Sun, 16 Feb 2025 19:32:47 +0000 (20:32 +0100)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Mon, 24 Feb 2025 11:19:18 +0000 (13:19 +0200)
The WMI core already knows the instance count of a WMI guid.
Use this information instead of querying all possible instances
which is slow and might be unreliable.

Signed-off-by: Armin Wolf <W_Armin@gmx.de>
Link: https://lore.kernel.org/r/20250216193251.866125-5-W_Armin@gmx.de
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
drivers/platform/x86/hp/hp-bioscfg/bioscfg.c

index 0b277b7e37dd6b598e4fe5de6dc0ac47300a8e3b..63c78b4d8258dc19b739932a1cee311eb4073791 100644 (file)
@@ -388,16 +388,13 @@ union acpi_object *hp_get_wmiobj_pointer(int instance_id, const char *guid_strin
  */
 int hp_get_instance_count(const char *guid_string)
 {
-       union acpi_object *wmi_obj = NULL;
-       int i = 0;
+       int ret;
 
-       do {
-               kfree(wmi_obj);
-               wmi_obj = hp_get_wmiobj_pointer(i, guid_string);
-               i++;
-       } while (wmi_obj);
+       ret = wmi_instance_count(guid_string);
+       if (ret < 0)
+               return 0;
 
-       return i - 1;
+       return ret;
 }
 
 /**