Re: [PATCH v23 14/14] KVM: arm64: Prevent unsupported vcpu features for VM types

From: Marc Zyngier

Date: Fri Oct 09 2026 - 08:36:16 EST


On Fri, 09 Oct 2026 11:10:55 +0100,
Fuad Tabba <tabba@xxxxxxxxxx> wrote:
>
> Hi Marc,
>
> On Fri, 09 Oct 2026 09:55:52 +0100, Marc Zyngier <maz@xxxxxxxxxx> wrote:
> [...]
> > A rebase would be a terrible idea. This thing *must* go on its own
> > branch, and not depend on anything else.
> >
> > I can however fix things at merge time. is something like this what
> > you had in mind? It compiles, and is therefore perfect...
>
> Yes, that's what I had in mind, but please keep the PSCI 0.2 check
> from kvm_vcpu_init_check_features():
>
> /* EL2 implements PSCI 1.1; the host must not dispatch as 0.1. */
> if (vcpu_is_protected(vcpu) &&
> !test_bit(KVM_ARM_VCPU_PSCI_0_2, &features))
> return -EINVAL;
>
> Folding the allowed set into the mask covers the rest of the block you
> dropped, but a mask can only reject a feature, not require one.
> Without the check a protected vCPU can init without PSCI_0_2, and the
> host then dispatches the forwarded calls as PSCI 0.1, while EL2
> returns 1.1 to the guest.

I think eventually we will have to implement this stuff as a pair of
masks on a backend basis: one for what is acceptable, one for what is
mandatory.

In the meantime, I'll fold the above hack in.

Thanks,

M.

--
Without deviation from the norm, progress is not possible.