]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
cpufreq: Drop unnecessary cpus locking from store()
authorViresh Kumar <viresh.kumar@linaro.org>
Thu, 26 May 2022 11:51:21 +0000 (17:21 +0530)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 14 Jun 2022 13:50:55 +0000 (15:50 +0200)
This change was introduced long back by commit 4f750c930822 ("cpufreq:
Synchronize the cpufreq store_*() routines with CPU hotplug").

Since then, both cpufreq and hotplug core have been reworked and have
much better locking in place. The race mentioned in commit 4f750c930822
isn't possible anymore.

Drop the unnecessary locking.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpufreq/cpufreq.c

index e24aa5d4bca54b43c4c68dafb9dcbc1ec78fb35d..73432360e6e98424cc208fe924534f200a4da931 100644 (file)
@@ -973,21 +973,10 @@ static ssize_t store(struct kobject *kobj, struct attribute *attr,
        if (!fattr->store)
                return -EIO;
 
-       /*
-        * cpus_read_trylock() is used here to work around a circular lock
-        * dependency problem with respect to the cpufreq_register_driver().
-        */
-       if (!cpus_read_trylock())
-               return -EBUSY;
-
-       if (cpu_online(policy->cpu)) {
-               down_write(&policy->rwsem);
-               if (likely(!policy_is_inactive(policy)))
-                       ret = fattr->store(policy, buf, count);
-               up_write(&policy->rwsem);
-       }
-
-       cpus_read_unlock();
+       down_write(&policy->rwsem);
+       if (likely(!policy_is_inactive(policy)))
+               ret = fattr->store(policy, buf, count);
+       up_write(&policy->rwsem);
 
        return ret;
 }