diff options
author | Ard Biesheuvel <ardb@kernel.org> | 2023-04-18 17:36:04 +0300 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2023-05-25 18:55:19 +0300 |
commit | 211ceca377f40ff46aef8ceb6e26cf4e7efecaf1 (patch) | |
tree | 01b66adf306adebd8d450f1d4b3b060dc362778f /arch/arm64/include | |
parent | 0936243cabf0caf46f1a42606325ab93cfa05a6a (diff) | |
download | linux-211ceca377f40ff46aef8ceb6e26cf4e7efecaf1.tar.xz |
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 <ardb@kernel.org>
Reviewed-by: Will Deacon <will@kernel.org>
Link: https://lore.kernel.org/r/20230418143604.1176437-3-ardb@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64/include')
0 files changed, 0 insertions, 0 deletions