On Fri, Oct 25, 2024, at 3:30 PM, Mario Limonciello wrote: > As multiple handlers may register for ACPI platform profile handler, > only remove the sysfs group when the last one unregisters. > > Tested-by: Matthew Schwartz <matthew.schwartz@xxxxxxxxx> > Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx> > --- > drivers/acpi/platform_profile.c | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/drivers/acpi/platform_profile.c b/drivers/acpi/platform_profile.c > index 81928adccfade..091ca6941a925 100644 > --- a/drivers/acpi/platform_profile.c > +++ b/drivers/acpi/platform_profile.c > @@ -23,6 +23,15 @@ static const char * const profile_names[] = { > }; > static_assert(ARRAY_SIZE(profile_names) == PLATFORM_PROFILE_LAST); > > +static bool platform_profile_is_registered(void) > +{ > + struct list_head *pos; > + int count = 0; > + list_for_each(pos, &platform_profile_handler_list) > + count++; > + return count > 0; > +} > + > static ssize_t platform_profile_choices_show(struct device *dev, > struct device_attribute *attr, > char *buf) > @@ -206,8 +215,10 @@ int platform_profile_remove(struct > platform_profile_handler *pprof) > > list_del(&pprof->list); > > - sysfs_remove_group(acpi_kobj, &platform_profile_group); > cur_profile = NULL; > + if (!platform_profile_is_registered()) > + sysfs_remove_group(acpi_kobj, &platform_profile_group); > + > return 0; > } > EXPORT_SYMBOL_GPL(platform_profile_remove); > -- > 2.43.0 Looks good to me. Reviewed-by: Mark Pearson <mpearson-lenovo@xxxxxxxxx> Mark