summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorMichael Ellerman <mpe@ellerman.id.au>2020-01-25 14:20:16 +0100
committerMichael Ellerman <mpe@ellerman.id.au>2020-01-27 12:36:59 +0100
commitd52668f6b3e052fa97e93e536c492f5880c73474 (patch)
tree8f8fefe09157256ce1ed42a9219dba7d368f6c09 /arch
parentpowerpc/8xx: Split breakpoint exception (diff)
downloadlinux-d52668f6b3e052fa97e93e536c492f5880c73474.tar.xz
linux-d52668f6b3e052fa97e93e536c492f5880c73474.zip
powerpc/8xx: Move tail of alignment exception out of line
When we enable VMAP_STACK there will not be enough room for the alignment handler at 0x600 in head_8xx.S. For now move the tail of the alignment handler out of line, and branch to it. Suggested-by: Christophe Leroy <christophe.leroy@c-s.fr> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/kernel/head_8xx.S7
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/head_8xx.S b/arch/powerpc/kernel/head_8xx.S
index 225e242ce1c5..a6b1b7af2217 100644
--- a/arch/powerpc/kernel/head_8xx.S
+++ b/arch/powerpc/kernel/head_8xx.S
@@ -145,7 +145,7 @@ Alignment:
li r6, RPN_PATTERN
mtspr SPRN_DAR, r6 /* Tag DAR, to be used in DTLB Error */
addi r3,r1,STACK_FRAME_OVERHEAD
- EXC_XFER_STD(0x600, alignment_exception)
+ b .Lalignment_exception_ool
/* Program check exception */
EXCEPTION(0x700, ProgramCheck, program_check_exception, EXC_XFER_STD)
@@ -153,6 +153,11 @@ Alignment:
/* Decrementer */
EXCEPTION(0x900, Decrementer, timer_interrupt, EXC_XFER_LITE)
+ /* With VMAP_STACK there's not enough room for this at 0x600 */
+ . = 0xa00
+.Lalignment_exception_ool:
+ EXC_XFER_STD(0x600, alignment_exception)
+
/* System call */
. = 0xc00
SystemCall: