[PATCH 1/5] KVM: arm64: pkvm: Move error handling to the end of kvm_hyp_cpu_entry
Fuad Tabba
tabba at google.com
Sun Mar 22 08:08:19 PDT 2026
On Sat, 21 Mar 2026 at 21:24, Marc Zyngier <maz at kernel.org> wrote:
>
> We currently handle CPUs having booted at EL1 in the middle of
> the kvm_hyp_cpu_entry function. Not only this adversely affects
> readability, but this is also at a bizarre spot should more
> error handling be added (which we're about to do).
>
> Move the WFE/WFI loop to the end of the function and fix a comment.
>
> Signed-off-by: Marc Zyngier <maz at kernel.org>
Reviewed-by: Fuad Tabba <tabba at google.com>
Cheers,
/fuad
> ---
> arch/arm64/kvm/hyp/nvhe/hyp-init.S | 14 +++++++-------
> 1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/arch/arm64/kvm/hyp/nvhe/hyp-init.S b/arch/arm64/kvm/hyp/nvhe/hyp-init.S
> index 0d42eedc7167c..5d00bde092010 100644
> --- a/arch/arm64/kvm/hyp/nvhe/hyp-init.S
> +++ b/arch/arm64/kvm/hyp/nvhe/hyp-init.S
> @@ -201,14 +201,9 @@ SYM_CODE_START_LOCAL(__kvm_hyp_init_cpu)
> /* Check that the core was booted in EL2. */
> mrs x0, CurrentEL
> cmp x0, #CurrentEL_EL2
> - b.eq 2f
> -
> - /* The core booted in EL1. KVM cannot be initialized on it. */
> -1: wfe
> - wfi
> - b 1b
> + b.ne 1f
>
> -2: msr SPsel, #1 // We want to use SP_EL{1,2}
> + msr SPsel, #1 // We want to use SP_EL2
>
> init_el2_hcr 0
>
> @@ -222,6 +217,11 @@ SYM_CODE_START_LOCAL(__kvm_hyp_init_cpu)
> mov x0, x29
> ldr x1, =kvm_host_psci_cpu_entry
> br x1
> +
> + // The core booted in EL1. KVM cannot be initialized on it.
> +1: wfe
> + wfi
> + b 1b
> SYM_CODE_END(__kvm_hyp_init_cpu)
>
> SYM_CODE_START(__kvm_handle_stub_hvc)
> --
> 2.47.3
>
More information about the linux-arm-kernel
mailing list