Re: [PATCH v5 09/20] ACPI: platform_profile: Unregister class and sysfs group on module unload

From: Armin Wolf
Date: Thu Nov 07 2024 - 03:22:47 EST


Am 07.11.24 um 07:02 schrieb Mario Limonciello:

The class and sysfs group are no longer needed when the platform profile
core is a module and unloaded.

Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx>
---
drivers/acpi/platform_profile.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/drivers/acpi/platform_profile.c b/drivers/acpi/platform_profile.c
index 652034b71ee9b..9caf070f77f6a 100644
--- a/drivers/acpi/platform_profile.c
+++ b/drivers/acpi/platform_profile.c
@@ -224,6 +224,13 @@ int platform_profile_remove(struct platform_profile_handler *pprof)
}
EXPORT_SYMBOL_GPL(platform_profile_remove);

+static void __exit platform_profile_exit(void)
+{
+ class_unregister(&platform_profile_class);
+ sysfs_remove_group(acpi_kobj, &platform_profile_group);

This will crash should the class still not exist.

I suggest you register the class and the legacy sysfs group during module initialization, and
add a is_visible() callback to the legacy sysfs group. Then you can use sysfs_update_group() to
update the visibility of the sysfs files when platform profiles come and go.

Also please squash this patch with the patch introducing the class infrastructure.

Thanks,
Armin Wolf

+}
+module_exit(platform_profile_exit);
+
MODULE_AUTHOR("Mark Pearson <markpearson@xxxxxxxxxx>");
MODULE_DESCRIPTION("ACPI platform profile sysfs interface");
MODULE_LICENSE("GPL");