@@ -10,7 +10,6 @@
#include <linux/platform_profile.h>
#include <linux/sysfs.h>
-static struct platform_profile_handler *cur_profile;
static DEFINE_MUTEX(profile_lock);
static const char * const profile_names[] = {
@@ -400,8 +399,6 @@ static const struct attribute_group platform_profile_group = {
void platform_profile_notify(struct platform_profile_handler *pprof)
{
- if (!cur_profile)
- return;
scoped_cond_guard(mutex_intr, return, &profile_lock) {
class_for_each_device(&platform_profile_class, NULL, NULL,
_notify_class_profile);
@@ -465,9 +462,6 @@ int platform_profile_register(struct platform_profile_handler *pprof)
}
guard(mutex)(&profile_lock);
- /* We can only have one active profile */
- if (cur_profile)
- return -EEXIST;
/* create class interface for individual handler */
pprof->minor = ida_alloc(&platform_profile_ida, GFP_KERNEL);
@@ -483,8 +477,6 @@ int platform_profile_register(struct platform_profile_handler *pprof)
sysfs_notify(acpi_kobj, NULL, "platform_profile");
- cur_profile = pprof;
-
err = sysfs_update_group(acpi_kobj, &platform_profile_group);
if (err)
goto cleanup_cur;
@@ -492,7 +484,6 @@ int platform_profile_register(struct platform_profile_handler *pprof)
return 0;
cleanup_cur:
- cur_profile = NULL;
device_unregister(pprof->class_dev);
cleanup_ida:
@@ -507,8 +498,6 @@ int platform_profile_remove(struct platform_profile_handler *pprof)
int id;
guard(mutex)(&profile_lock);
- cur_profile = NULL;
-
id = pprof->minor;
device_unregister(pprof->class_dev);
ida_free(&platform_profile_ida, id);