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");