Re: [PATCH v9 15/18] arm64: kexec: kexec EL2 vectors
From: James Morse <james.morse@arm.com>
Date: 2020-05-07 16:22:10
Also in:
kexec, linux-mm, lkml
Hi Pavel, What happened to the subject? (it really needs a verb to make any sense) On 26/03/2020 03:24, Pavel Tatashin wrote:
If we have a EL2 mode without VHE, the EL2 vectors are needed in order to switch to EL2 and jump to new world with hyperivsor privileges.
Yes, but the hyp-stub has an API to let you do this... but you need your own version. Could you explain why in the commit message? (spelling: hyperivsor)
quoted hunk ↗ jump to hunk
diff --git a/arch/arm64/kernel/machine_kexec.c b/arch/arm64/kernel/machine_kexec.c index ab571fca9bd1..bd398def7627 100644 --- a/arch/arm64/kernel/machine_kexec.c +++ b/arch/arm64/kernel/machine_kexec.c@@ -84,6 +84,11 @@ int machine_kexec_post_load(struct kimage *kimage) kern_reloc_arg->head = kimage->head; kern_reloc_arg->entry_addr = kimage->start; kern_reloc_arg->kern_arg0 = kimage->arch.dtb_mem; + /* Setup vector table only when EL2 is available, but no VHE */ + if (is_hyp_mode_available() && !is_kernel_in_hyp_mode()) { + kern_reloc_arg->el2_vector = __pa(reloc_code) + + kexec_el2_vectors_offset; + }
Why does the asm relocation code need to know where the vector is? It must access it via HVC. Thanks, James _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel