summaryrefslogtreecommitdiff
path: root/arch/arm/kernel
diff options
context:
space:
mode:
authorKees Cook <keescook@chromium.org>2017-07-04 21:41:31 -0700
committerKees Cook <keescook@chromium.org>2017-07-04 21:41:31 -0700
commitd1185a8c5dd21182012e6dd531b00fd72f4d30cb (patch)
tree1c394d6e27bad00e0f3aba4e59ca19823d0486d5 /arch/arm/kernel
parent6f7da290413ba713f0cdd9ff1a2a9bb129ef4f6c (diff)
parent03232e0ddebdc2c9d088e6748075704885f039a5 (diff)
Merge branch 'merge/randstruct' into for-next/gcc-plugins
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r--arch/arm/kernel/entry-armv.S5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index 9f157e7c51e7..c731f0d2b2af 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -797,7 +797,10 @@ ENTRY(__switch_to)
#if defined(CONFIG_CC_STACKPROTECTOR) && !defined(CONFIG_SMP)
ldr r7, [r2, #TI_TASK]
ldr r8, =__stack_chk_guard
- ldr r7, [r7, #TSK_STACK_CANARY]
+ .if (TSK_STACK_CANARY > IMM12_MASK)
+ add r7, r7, #TSK_STACK_CANARY & ~IMM12_MASK
+ .endif
+ ldr r7, [r7, #TSK_STACK_CANARY & IMM12_MASK]
#endif
#ifdef CONFIG_CPU_USE_DOMAINS
mcr p15, 0, r6, c3, c0, 0 @ Set domain register