提交 8b3358cf 编写于 作者: J James Morse 提交者: Yongqiang Liu

arm64: entry: Move trampoline macros out of ifdef'd section

stable inclusion
from stable-v4.19.236
commit f689fa53bb944873f75fe1584f446cae1aabd2c1
category: bugfix
bugzilla: 186460, https://gitee.com/src-openeuler/kernel/issues/I53MHA
CVE: CVE-2022-23960

--------------------------------

commit 13d7a083 upstream.

The macros for building the kpti trampoline are all behind
CONFIG_UNMAP_KERNEL_AT_EL0, and in a region that outputs to the
.entry.tramp.text section.

Move the macros out so they can be used to generate other kinds of
trampoline. Only the symbols need to be guarded by
CONFIG_UNMAP_KERNEL_AT_EL0 and appear in the .entry.tramp.text section.
Reviewed-by: NRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: NCatalin Marinas <catalin.marinas@arm.com>
Signed-off-by: NJames Morse <james.morse@arm.com>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: NChen Jiahao <chenjiahao16@huawei.com>
Reviewed-by: NHanjun Guo <guohanjun@huawei.com>
Reviewed-by: NLiao Chang <liaochang1@huawei.com>
Signed-off-by: NYongqiang Liu <liuyongqiang13@huawei.com>
上级 c13aede9
...@@ -1033,12 +1033,7 @@ ENDPROC(el0_svc) ...@@ -1033,12 +1033,7 @@ ENDPROC(el0_svc)
.popsection // .entry.text .popsection // .entry.text
#ifdef CONFIG_UNMAP_KERNEL_AT_EL0 // Move from tramp_pg_dir to swapper_pg_dir
/*
* Exception vectors trampoline.
*/
.pushsection ".entry.tramp.text", "ax"
.macro tramp_map_kernel, tmp .macro tramp_map_kernel, tmp
mrs \tmp, ttbr1_el1 mrs \tmp, ttbr1_el1
add \tmp, \tmp, #(PAGE_SIZE + RESERVED_TTBR0_SIZE) add \tmp, \tmp, #(PAGE_SIZE + RESERVED_TTBR0_SIZE)
...@@ -1129,6 +1124,11 @@ alternative_insn isb, nop, ARM64_WORKAROUND_QCOM_FALKOR_E1003 ...@@ -1129,6 +1124,11 @@ alternative_insn isb, nop, ARM64_WORKAROUND_QCOM_FALKOR_E1003
.endr .endr
.endm .endm
#ifdef CONFIG_UNMAP_KERNEL_AT_EL0
/*
* Exception vectors trampoline.
*/
.pushsection ".entry.tramp.text", "ax"
.align 11 .align 11
ENTRY(tramp_vectors) ENTRY(tramp_vectors)
generate_tramp_vector generate_tramp_vector
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册