aboutsummaryrefslogtreecommitdiff
path: root/arch/mips
diff options
context:
space:
mode:
authorGravatar Paul Burton <paul.burton@imgtec.com> 2014-07-11 16:44:34 +0100
committerGravatar Ralf Baechle <ralf@linux-mips.org> 2014-08-02 00:06:44 +0200
commit3587ea888b8ed0a3d7e792738b4db687d9e7f73b (patch)
tree7f7fe5b13ab70d1f91c228391bc866f9de0cf8b5 /arch/mips
parentMIPS: fix read_msa_* & write_msa_* functions on non-MSA toolchains (diff)
downloadlinux-3587ea888b8ed0a3d7e792738b4db687d9e7f73b.tar.gz
linux-3587ea888b8ed0a3d7e792738b4db687d9e7f73b.tar.bz2
linux-3587ea888b8ed0a3d7e792738b4db687d9e7f73b.zip
MIPS: ensure MSA gets disabled during boot
The kernel relies upon MSA being disabled when a task begins running, so that it can initialise or restore context in response to the resulting MSA disabled exception. Previously the state of MSA following boot was left as it was before the kernel ran, where MSA could potentially have been enabled. Explicitly disable it during boot to prevent any problems. As a nice side effect the code reads a little better too. Signed-off-by: Paul Burton <paul.burton@imgtec.com> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/7306/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips')
-rw-r--r--arch/mips/kernel/cpu-probe.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c
index cd252fd684b7..66b8fe97f739 100644
--- a/arch/mips/kernel/cpu-probe.c
+++ b/arch/mips/kernel/cpu-probe.c
@@ -144,14 +144,13 @@ static inline int __cpu_has_fpu(void)
static inline unsigned long cpu_get_msa_id(void)
{
- unsigned long status, conf5, msa_id;
+ unsigned long status, msa_id;
status = read_c0_status();
__enable_fpu(FPU_64BIT);
- conf5 = read_c0_config5();
enable_msa();
msa_id = read_msa_ir();
- write_c0_config5(conf5);
+ disable_msa();
write_c0_status(status);
return msa_id;
}