summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKurt Borja <kuurtb@gmail.com>2025-06-30 14:31:19 -0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-07-10 16:08:54 +0200
commit7720ae7f52811cd88a3ae200d3c75a3ff00e84e4 (patch)
tree365547341447ec5d3bba668ced6110c739c9e45f
parent02c725cd55eb5052b88eeaa3f60a391ef4dcaec5 (diff)
downloadlinux-7720ae7f52811cd88a3ae200d3c75a3ff00e84e4.tar.gz
linux-7720ae7f52811cd88a3ae200d3c75a3ff00e84e4.tar.bz2
linux-7720ae7f52811cd88a3ae200d3c75a3ff00e84e4.zip
platform/x86: think-lmi: Create ksets consecutively
commit 8dab34ca77293b409c3223636dde915a22656748 upstream. Avoid entering tlmi_release_attr() in error paths if both ksets are not yet created. This is accomplished by initializing them side by side. Reviewed-by: Mark Pearson <mpearson-lenovo@squebb.ca> Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Cc: stable@vger.kernel.org Signed-off-by: Kurt Borja <kuurtb@gmail.com> Link: https://lore.kernel.org/r/20250630-lmi-fix-v3-1-ce4f81c9c481@gmail.com Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/platform/x86/think-lmi.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/platform/x86/think-lmi.c b/drivers/platform/x86/think-lmi.c
index 28ce475f6c37..39306951f234 100644
--- a/drivers/platform/x86/think-lmi.c
+++ b/drivers/platform/x86/think-lmi.c
@@ -1455,6 +1455,14 @@ static int tlmi_sysfs_init(void)
goto fail_device_created;
}
+ tlmi_priv.authentication_kset = kset_create_and_add("authentication", NULL,
+ &tlmi_priv.class_dev->kobj);
+ if (!tlmi_priv.authentication_kset) {
+ kset_unregister(tlmi_priv.attribute_kset);
+ ret = -ENOMEM;
+ goto fail_device_created;
+ }
+
for (i = 0; i < TLMI_SETTINGS_COUNT; i++) {
/* Check if index is a valid setting - skip if it isn't */
if (!tlmi_priv.setting[i])
@@ -1496,12 +1504,6 @@ static int tlmi_sysfs_init(void)
}
/* Create authentication entries */
- tlmi_priv.authentication_kset = kset_create_and_add("authentication", NULL,
- &tlmi_priv.class_dev->kobj);
- if (!tlmi_priv.authentication_kset) {
- ret = -ENOMEM;
- goto fail_create_attr;
- }
tlmi_priv.pwd_admin->kobj.kset = tlmi_priv.authentication_kset;
ret = kobject_add(&tlmi_priv.pwd_admin->kobj, NULL, "%s", "Admin");
if (ret)