[PATCH 3.16 104/254] MIPS: MSA: bugfix - disable MSA correctly for new threads/processes.

From: Ben Hutchings
Date: Wed Feb 28 2018 - 11:09:07 EST


3.16.55-rc1 review patch. If anyone has any objections, please let me know.

------------------

From: Ralf Baechle <ralf@xxxxxxxxxxxxxx>

commit 9cc719ab3f4f639d629ac8ff09e9b998bc006f68 upstream.

Due to the slightly odd way that new threads and processes start execution
when scheduled for the very first time they were bypassing the required
disable_msa call.

Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
---
arch/mips/include/asm/switch_to.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- a/arch/mips/include/asm/switch_to.h
+++ b/arch/mips/include/asm/switch_to.h
@@ -101,7 +101,6 @@ do { \
if (test_and_clear_tsk_thread_flag(prev, TIF_USEDMSA)) \
__fpsave = FP_SAVE_VECTOR; \
(last) = resume(prev, next, task_thread_info(next), __fpsave); \
- disable_msa(); \
} while (0)

#define finish_arch_switch(prev) \
@@ -119,6 +118,7 @@ do { \
if (cpu_has_userlocal) \
write_c0_userlocal(current_thread_info()->tp_value); \
__restore_watch(); \
+ disable_msa(); \
} while (0)

#endif /* _ASM_SWITCH_TO_H */