[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