summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorMarkos Chandras <markos.chandras@imgtec.com>2014-07-21 14:35:56 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-09-17 09:22:04 -0700
commit7fdcc360a97ba085c569d5bb37d696647f44fc77 (patch)
tree743b0d185f816472acc00f3f47878a0cf554b07a /arch
parent33ea375afc912ca1569a3bb3953d829c75986cc6 (diff)
downloadlwn-7fdcc360a97ba085c569d5bb37d696647f44fc77.tar.gz
lwn-7fdcc360a97ba085c569d5bb37d696647f44fc77.zip
MIPS: CPS: Initialize EVA before bringing up VPEs from secondary cores
commit 6521d9a436a62e83ce57d6be6e5484e1098c1380 upstream. The CPS code is doing several memory loads when configuring the VPEs from secondary cores, so the segmentation control registers must be initialized in time otherwise the kernel will crash with strange TLB exceptions. Reviewed-by: Paul Burton <paul.burton@imgtec.com> Signed-off-by: Markos Chandras <markos.chandras@imgtec.com> Patchwork: http://patchwork.linux-mips.org/patch/7424/ Signed-off-by: James Hogan <james.hogan@imgtec.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/mips/kernel/cps-vec.S4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/mips/kernel/cps-vec.S b/arch/mips/kernel/cps-vec.S
index 6f4f739dad96..e6e97d2a5c9e 100644
--- a/arch/mips/kernel/cps-vec.S
+++ b/arch/mips/kernel/cps-vec.S
@@ -13,6 +13,7 @@
#include <asm/asm-offsets.h>
#include <asm/asmmacro.h>
#include <asm/cacheops.h>
+#include <asm/eva.h>
#include <asm/mipsregs.h>
#include <asm/mipsmtregs.h>
#include <asm/pm.h>
@@ -166,6 +167,9 @@ dcache_done:
1: jal mips_cps_core_init
nop
+ /* Do any EVA initialization if necessary */
+ eva_init
+
/*
* Boot any other VPEs within this core that should be online, and
* deactivate this VPE if it should be offline.