[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20171128023812.GA11413@vireshk-i7>
Date: Tue, 28 Nov 2017 08:08:12 +0530
From: Viresh Kumar <viresh.kumar@...aro.org>
To: "Rafael J. Wysocki" <rjw@...ysocki.net>
Cc: Linux PM <linux-pm@...r.kernel.org>,
LKML <linux-kernel@...r.kernel.org>,
Srinivas Pandruvada <srinivas.pandruvada@...ux.intel.com>
Subject: Re: [PATCH v2 3/4] cpufreq: Fix governor module removal race
On 23-11-17, 14:27, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@...el.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.wysocki@...el.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.kumar@...aro.org>
--
viresh
Powered by blists - more mailing lists