On 23-11-17, 14:27, Rafael J. Wysocki wrote: > From: Rafael J. Wysocki <rafael.j.wyso...@intel.com> > > It is possible to remove a cpufreq governor module after > cpufreq_parse_governor() has returned success in > store_scaling_governor() and before cpufreq_set_policy() > acquires a reference to it, because the governor list is > not protected during that period and nothing prevents the > governor from being unregistered then. > > Prevent that from happening by acquiring an extra reference > to the governor module temporarily in cpufreq_parse_governor(), > under cpufreq_governor_mutex, and dropping it in > store_scaling_governor(), when cpufreq_set_policy() returns. > > Note that the second cpufreq_parse_governor() call site is fine, > because it only cares about the policy member of new_policy. > > Signed-off-by: Rafael J. Wysocki <rafael.j.wyso...@intel.com> > --- > > -> v2: Drop changes to clear policy->governor in > cpufreq_parse_governor() in the cpufreq_driver->setpolicy set > case, as that field should always be NULL then. > > --- > drivers/cpufreq/cpufreq.c | 6 ++++++ > 1 file changed, 6 insertions(+)
Acked-by: Viresh Kumar <viresh.ku...@linaro.org> -- viresh