Skip to content

Commit

Permalink
platform/x86: dell-wmi-sysman: Make sysman_init() return -ENODEV of t…
Browse files Browse the repository at this point in the history
…he interfaces are not found

When either the attributes or the password interface is not found, then
unregister the 2 wmi drivers again and return -ENODEV from sysman_init().

Fixes: e8a60aa ("platform/x86: Introduce support for Systems Management Driver over WMI for Dell Systems")
Cc: Divya Bharathi <Divya_Bharathi@dell.com>
Cc: Mario Limonciello <mario.limonciello@dell.com>
Reported-by: Alexander Naumann <alexandernaumann@gmx.de>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20210321115901.35072-7-hdegoede@redhat.com
  • Loading branch information
Hans de Goede committed Mar 21, 2021
1 parent eaa1dcc commit 9b95665
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
Original file line number Diff line number Diff line change
Expand Up @@ -506,15 +506,17 @@ static int __init sysman_init(void)
}

ret = init_bios_attr_set_interface();
if (ret || !wmi_priv.bios_attr_wdev) {
pr_debug("failed to initialize set interface\n");
if (ret)
return ret;
}

ret = init_bios_attr_pass_interface();
if (ret || !wmi_priv.password_attr_wdev) {
pr_debug("failed to initialize pass interface\n");
if (ret)
goto err_exit_bios_attr_set_interface;

if (!wmi_priv.bios_attr_wdev || !wmi_priv.password_attr_wdev) {
pr_debug("failed to find set or pass interface\n");
ret = -ENODEV;
goto err_exit_bios_attr_pass_interface;
}

ret = class_register(&firmware_attributes_class);
Expand Down

0 comments on commit 9b95665

Please sign in to comment.