On 1 September 2014 05:09, Leo Yan <l...@marvell.com> wrote: > Now arm64 defers reloading FPSIMD state, but this optimization also > introduces the bug after cpu resume back from low power mode. > > The reason is after the cpu has been powered off, s/w need set the > cpu's fpsimd_last_state to NULL so that it will force to reload > FPSIMD state for the thread, otherwise there has the chance to meet > the condition for both the task's fpsimd_state.cpu field contains the > id of the current cpu, and the cpu's fpsimd_last_state per-cpu variable > points to the task's fpsimd_state, so finally kernel will skip to reload > the context during it return back to userland. > > Signed-off-by: Leo Yan <l...@marvell.com>
Acked-by: Ard Biesheuvel <ard.biesheu...@linaro.org> > --- > arch/arm64/kernel/fpsimd.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c > index ad8aebb..3dca156 100644 > --- a/arch/arm64/kernel/fpsimd.c > +++ b/arch/arm64/kernel/fpsimd.c > @@ -270,6 +270,7 @@ static int fpsimd_cpu_pm_notifier(struct notifier_block > *self, > case CPU_PM_ENTER: > if (current->mm && !test_thread_flag(TIF_FOREIGN_FPSTATE)) > fpsimd_save_state(¤t->thread.fpsimd_state); > + this_cpu_write(fpsimd_last_state, NULL); > break; > case CPU_PM_EXIT: > if (current->mm) > -- > 1.9.1 > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/