Skip to content

Commit f26fee5

Browse files
hoeunRussell King
authored andcommitted
ARM: 8690/1: lpae: build TTB control register value from scratch in v7_ttb_setup
Reading TTBCR in early boot stage might return the value of the previous kernel's configuration, especially in case of kexec. For example, if normal kernel (first kernel) had run on a configuration of PHYS_OFFSET <= PAGE_OFFSET and crash kernel (second kernel) is running on a configuration PHYS_OFFSET > PAGE_OFFSET, which can happen because it depends on the reserved area for crash kernel, reading TTBCR and using the value to OR other bit fields might be risky because it doesn't have a reset value for TTBCR. Suggested-by: Robin Murphy <[email protected]> Signed-off-by: Hoeun Ryu <[email protected]> Signed-off-by: Russell King <[email protected]>
1 parent 1abd350 commit f26fee5

File tree

1 file changed

+1
-2
lines changed

1 file changed

+1
-2
lines changed

arch/arm/mm/proc-v7-3level.S

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,7 @@ ENDPROC(cpu_v7_set_pte_ext)
129129
.macro v7_ttb_setup, zero, ttbr0l, ttbr0h, ttbr1, tmp
130130
ldr \tmp, =swapper_pg_dir @ swapper_pg_dir virtual address
131131
cmp \ttbr1, \tmp, lsr #12 @ PHYS_OFFSET > PAGE_OFFSET?
132-
mrc p15, 0, \tmp, c2, c0, 2 @ TTB control egister
133-
orr \tmp, \tmp, #TTB_EAE
132+
mov \tmp, #TTB_EAE @ for TTB control egister
134133
ALT_SMP(orr \tmp, \tmp, #TTB_FLAGS_SMP)
135134
ALT_UP(orr \tmp, \tmp, #TTB_FLAGS_UP)
136135
ALT_SMP(orr \tmp, \tmp, #TTB_FLAGS_SMP << 16)

0 commit comments

Comments
 (0)