Re: [patch 10/13] cpufreq/sh: Replace racy task affinity logic

From: Viresh Kumar
Date: Wed Apr 12 2017 - 22:46:50 EST


On 12-04-17, 22:07, Thomas Gleixner wrote:
> The target() callback 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.
>
> 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@xxxxxxxxxxxxx>
> Cc: "Rafael J. Wysocki" <rjw@xxxxxxxxxxxxx>
> Cc: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
> Cc: linux-pm@xxxxxxxxxxxxxxx
> ---
> drivers/cpufreq/sh-cpufreq.c | 45 +++++++++++++++++++++++++------------------
> 1 file changed, 27 insertions(+), 18 deletions(-)

Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>

--
viresh