On 01/27/2014 07:23 AM, Paul Burton wrote:
No current systems implementing MSA include support for vector register partitioning which makes it somewhat difficult to implement support for it in the kernel. Thus for the moment the kernel includes no such support. However if the kernel were to be run on a system which implemented register partitioning then it would not function correctly, mishandling MSA disabled exceptions. Calling panic when run on a system with vector register partitioning implemented ensures that we're not caught out by this later but instead reminded to implement support once such a system is available. Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx> --- arch/mips/kernel/cpu-probe.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c index 852e085..003ba3c 100644 --- a/arch/mips/kernel/cpu-probe.c +++ b/arch/mips/kernel/cpu-probe.c @@ -1193,9 +1193,13 @@ void cpu_probe(void) else c->srsets = 1; - if (cpu_has_msa) + if (cpu_has_msa) { c->msa_id = cpu_get_msa_id(); + if (c->msa_id & MSA_IR_WRPF) + panic("Vector register partitioning unimplemented!");
You should probably use a WARN_ON() instead. There is no reason to crash the kernel for this condition is there?
+ } + cpu_probe_vmbits(c); #ifdef CONFIG_64BIT