aboutsummaryrefslogtreecommitdiff
path: root/arch/arm64/kernel/traps.c
diff options
context:
space:
mode:
authorArd Biesheuvel <[email protected]>2023-04-18 16:36:04 +0200
committerCatalin Marinas <[email protected]>2023-05-25 16:55:19 +0100
commit211ceca377f40ff46aef8ceb6e26cf4e7efecaf1 (patch)
tree01b66adf306adebd8d450f1d4b3b060dc362778f /arch/arm64/kernel/traps.c
parent0936243cabf0caf46f1a42606325ab93cfa05a6a (diff)
arm64: entry: Simplify tramp_alias macro and tramp_exit routine
The tramp_alias macro constructs the virtual alias of a symbol in the trampoline text mapping, based on its kernel text address, and does so in a way that is more convoluted than necessary. So let's simplify that. Also, now that the address of the vector table is kept in a per-CPU variable, there is no need to defer the load and the assignment of VBAR_EL1 to tramp_exit(). This means we can use a PC-relative reference to the per-CPU variable instead of storing its absolute address in a global variable in the trampoline rodata. And given that tramp_alias no longer needs a temp register, this means we can restore X30 earlier as well, and only leave X29 for tramp_exit() to restore. While at it, give some related symbols static linkage, considering that they are only referenced from the object file that defines them. Signed-off-by: Ard Biesheuvel <[email protected]> Reviewed-by: Will Deacon <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Catalin Marinas <[email protected]>
Diffstat (limited to 'arch/arm64/kernel/traps.c')
0 files changed, 0 insertions, 0 deletions