]> git.baikalelectronics.ru Git - kernel.git/commit
MIPS: init upper 64b of vector registers when MSA is first used
authorPaul Burton <paul.burton@imgtec.com>
Wed, 30 Jul 2014 07:53:20 +0000 (08:53 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Fri, 1 Aug 2014 22:06:44 +0000 (00:06 +0200)
commitdf02a9690ded9e8a23eb8495b613d0e9c7bfd519
tree169346d3830d35c20c8cce14cb9c91cb3bfc3b7a
parent626ea578e13d151f974dbb2b54b6216628c3f623
MIPS: init upper 64b of vector registers when MSA is first used

When a task first makes use of MSA we need to ensure that the upper
64b of the vector registers are set to some value such that no
information can be leaked to it from the previous task to use MSA
context on the CPU. The architecture formerly specified that these
bits would be cleared to 0 when a scalar FP instructions wrote to the
aliased FP registers, which would have implicitly handled this as the
kernel restored scalar FP context. However more recent versions of the
specification now state that the value of the bits in such cases is
unpredictable. Initialise them explictly to be sure, and set all the
bits to 1 rather than 0 for consistency with the least significant
64b.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/7497/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/include/asm/asmmacro.h
arch/mips/include/asm/msa.h
arch/mips/kernel/r4k_switch.S
arch/mips/kernel/traps.c