MIPS: fix MSA context for tasks which don't use FP first
authorPaul Burton <paul.burton@imgtec.com>
Thu, 31 Jul 2014 13:53:16 +0000 (14:53 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Fri, 1 Aug 2014 22:06:44 +0000 (00:06 +0200)
If a task does not execute scalar FP instructions prior to using MSA
then the flags indicating that the task has live MSA context were not
being set. The upper 64b of each vector register would then be lost
upon the tasks first context switch after using MSA.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/7500/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/traps.c

index 1ed84577d3e318c50b6a1546fafd39440c6ddc8f..4716b89543a9f87984f7e52891d76ca07d86cada 100644 (file)
@@ -1097,6 +1097,8 @@ static int enable_restore_fp_context(int msa)
                if (msa && !err) {
                        enable_msa();
                        _init_msa_upper();
+                       set_thread_flag(TIF_USEDMSA);
+                       set_thread_flag(TIF_MSA_CTX_LIVE);
                }
                if (!err)
                        set_used_math();