| Date | Thu, 13 Apr 2017 08:12:49 +0530 | From | Viresh Kumar <> | Subject | Re: [patch 09/13] cpufreq/ia64: Replace racy task affinity logic |
| |
On 12-04-17, 22:07, Thomas Gleixner wrote: > The get() and target() callbacks must run on the affected cpu. This is > achieved by temporarily setting the affinity of the calling thread to the > requested CPU and reset it to the original affinity afterwards. > > That's racy vs. concurrent affinity settings for that thread resulting in > code executing on the wrong CPU and overwriting the new affinity setting. > > Replace it by work_on_cpu(). All call pathes which invoke the callbacks are > already protected against CPU hotplug. > > Signed-off-by: Thomas Gleixner <tglx@linutronix.de> > Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net> > Cc: Viresh Kumar <viresh.kumar@linaro.org> > Cc: Tony Luck <tony.luck@intel.com> > Cc: Fenghua Yu <fenghua.yu@intel.com> > Cc: linux-pm@vger.kernel.org > --- > drivers/cpufreq/ia64-acpi-cpufreq.c | 91 +++++++++++++++--------------------- > 1 file changed, 38 insertions(+), 53 deletions(-)
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
-- viresh
|