diff options
| author | Armin Wolf <W_Armin@gmx.de> | 2025-02-16 20:32:47 +0100 |
|---|---|---|
| committer | Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> | 2025-02-24 13:19:18 +0200 |
| commit | 0fcc3162e3fbe4ca9347b2f42313dbf077207bb1 (patch) | |
| tree | 7c2aea2fb98842a52fe21aec3860b1f879438f5d | |
| parent | 126a53a94a3fb3171d35f3c87820aafbafa08430 (diff) | |
| download | linux-0fcc3162e3fbe4ca9347b2f42313dbf077207bb1.tar.gz linux-0fcc3162e3fbe4ca9347b2f42313dbf077207bb1.zip | |
platform/x86: hp-bioscfg: Use wmi_instance_count()
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>
| -rw-r--r-- | drivers/platform/x86/hp/hp-bioscfg/bioscfg.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/platform/x86/hp/hp-bioscfg/bioscfg.c b/drivers/platform/x86/hp/hp-bioscfg/bioscfg.c index 0b277b7e37dd..63c78b4d8258 100644 --- a/drivers/platform/x86/hp/hp-bioscfg/bioscfg.c +++ b/drivers/platform/x86/hp/hp-bioscfg/bioscfg.c @@ -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; } /** |
