Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
crypto: N2 - Replace racy task affinity logic
spu_queue_register() needs to invoke setup functions on a particular CPU. This is achieved by temporarily setting the affinity of the calling user space thread to the requested CPU and reset it to the original affinity afterwards. That's racy vs. CPU hotplug and concurrent affinity settings for that thread resulting in code executing on the wrong CPU and overwriting the new affinity setting. Replace it by using work_on_cpu_safe() which guarantees to run the code on the requested CPU or to fail in case the CPU is offline. Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: Herbert Xu <[email protected]> Acked-by: "David S. Miller" <[email protected]> Cc: Fenghua Yu <[email protected]> Cc: Tony Luck <[email protected]> Cc: "Rafael J. Wysocki" <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Benjamin Herrenschmidt <[email protected]> Cc: Sebastian Siewior <[email protected]> Cc: Lai Jiangshan <[email protected]> Cc: Viresh Kumar <[email protected]> Cc: [email protected] Cc: Michael Ellerman <[email protected]> Cc: Tejun Heo <[email protected]> Cc: Len Brown <[email protected]> Link: http://lkml.kernel.org/r/alpine.DEB.2.20.1704131019420.2408@nanos Signed-off-by: Thomas Gleixner <[email protected]>
- Loading branch information