]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
platform/x86: think-lmi: Fix class device unregistration
authorKurt Borja <kuurtb@gmail.com>
Thu, 26 Jun 2025 01:17:36 +0000 (22:17 -0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 10 Jul 2025 13:59:52 +0000 (15:59 +0200)
[ Upstream commit 5ff1fbb3059730700b4823f43999fc1315984632 ]

Devices under the firmware_attributes_class do not have unique a dev_t.
Therefore, device_unregister() should be used instead of
device_destroy(), since the latter may match any device with a given
dev_t.

Fixes: a40cd7ef22fb ("platform/x86: think-lmi: Add WMI interface support on Lenovo platforms")
Signed-off-by: Kurt Borja <kuurtb@gmail.com>
Link: https://lore.kernel.org/r/20250625-dest-fix-v1-2-3a0f342312bb@gmail.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/platform/x86/think-lmi.c

index 6641f934f15bfb270de55ce814b10e089944bd6a..804e2493d7d21febfb0f8390199cea4977d77149 100644 (file)
@@ -1380,7 +1380,7 @@ static int tlmi_sysfs_init(void)
 fail_create_attr:
        tlmi_release_attr();
 fail_device_created:
-       device_destroy(fw_attr_class, MKDEV(0, 0));
+       device_unregister(tlmi_priv.class_dev);
 fail_class_created:
        fw_attributes_class_put();
        return ret;
@@ -1602,7 +1602,7 @@ fail_clear_attr:
 static void tlmi_remove(struct wmi_device *wdev)
 {
        tlmi_release_attr();
-       device_destroy(fw_attr_class, MKDEV(0, 0));
+       device_unregister(tlmi_priv.class_dev);
        fw_attributes_class_put();
 }