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 <t...@linutronix.de> > Cc: "Rafael J. Wysocki" <r...@rjwysocki.net> > Cc: Viresh Kumar <viresh.ku...@linaro.org> > Cc: linux...@vger.kernel.org > --- > drivers/cpufreq/sh-cpufreq.c | 45 > +++++++++++++++++++++++++------------------ > 1 file changed, 27 insertions(+), 18 deletions(-)
Acked-by: Viresh Kumar <viresh.ku...@linaro.org> -- viresh