Re: [PATCH v4 07/17] KVM: arm64: Add PKVM_HYP_REQ_HYP_ALLOC request

[email protected] Fri, 31 Jul 2026 14:52:15 +0000
Newsgroups dev.linux.lists.kvmarm
Message-ID <[email protected]>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The __pkvm_hyp_topup hypercall is incorrectly placed in the always-on band, making it reachable in standard nVHE mode.
--

--- Patch [7]: [PATCH v4 07/17] KVM: arm64: Add PKVM_HYP_REQ_HYP_ALLOC request ---
commit c7805b75faa5ebe4c309f41eb0346f2ae0a468dd
Author: Vincent Donnefort <[email protected]>

KVM: arm64: Add PKVM_HYP_REQ_HYP_ALLOC request

Introduce a new pkvm_hyp_request type asking the host to top up the pKVM
heap allocator.

> diff --git a/arch/arm64/include/asm/kvm_asm.h b/arch/arm64/include/asm/kvm_asm.h
> index 043495f7fc78b..b77acfd7d1c8a 100644
> --- a/arch/arm64/include/asm/kvm_asm.h
> +++ b/arch/arm64/include/asm/kvm_asm.h
> @@ -89,6 +89,7 @@ enum __kvm_host_smccc_func {
>  	__KVM_HOST_SMCCC_FUNC___vgic_v3_restore_vmcr_aprs,
>  	__KVM_HOST_SMCCC_FUNC___vgic_v5_save_apr,
>  	__KVM_HOST_SMCCC_FUNC___vgic_v5_restore_vmcr_apr,
> +	__KVM_HOST_SMCCC_FUNC___pkvm_hyp_topup,
>  
>  	MARKER(__KVM_HOST_SMCCC_FUNC_PKVM_ONLY),

[Severity: Medium]
Should __KVM_HOST_SMCCC_FUNC___pkvm_hyp_topup be placed after the
__KVM_HOST_SMCCC_FUNC_PKVM_ONLY marker instead of before it?

Placing it here in the always-on band makes it reachable in standard
nVHE mode or before pKVM is finalized. If the host kernel executes this
hypercall during those phases, it could attempt to invoke
hyp_alloc_topup() against uninitialized pKVM heap structures, potentially
causing a hypervisor panic.

[ ... ]

> diff --git a/arch/arm64/kvm/hyp/nvhe/hyp-main.c b/arch/arm64/kvm/hyp/nvhe/hyp-main.c
> index d3c69de698f48..439b91fc8aecf 100644
> --- a/arch/arm64/kvm/hyp/nvhe/hyp-main.c
> +++ b/arch/arm64/kvm/hyp/nvhe/hyp-main.c
[ ... ]
> @@ -740,6 +765,7 @@ static const hcall_t host_hcall[] = {
>  	HANDLE_FUNC(__vgic_v3_restore_vmcr_aprs),
>  	HANDLE_FUNC(__vgic_v5_save_apr),
>  	HANDLE_FUNC(__vgic_v5_restore_vmcr_apr),
> +	HANDLE_FUNC(__pkvm_hyp_topup),
>  
>  	HANDLE_FUNC(__pkvm_host_share_hyp),
>  	HANDLE_FUNC(__pkvm_host_unshare_hyp),

[Severity: Medium]
Does this handler registration also need to be moved to mirror the
enum placement in the finalized-only band?

-- 
Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=7