Re: [PATCH v15 26/37] KVM: arm64: WARN on injected undef exceptions

From: Marc Zyngier

Date: Wed Jul 15 2026 - 11:53:09 EST


On Wed, 15 Jul 2026 15:28:28 +0100,
Steven Price <steven.price@xxxxxxx> wrote:
>
> The RMM doesn't allow injection of a undefined exception into a realm
> guest. Add a WARN to catch if this ever happens.
>
> Signed-off-by: Steven Price <steven.price@xxxxxxx>
> Reviewed-by: Gavin Shan <gshan@xxxxxxxxxx>
> Reviewed-by: Suzuki K Poulose <suzuki.poulose@xxxxxxx>
> ---
> Changes since v6:
> * if (x) WARN(1, ...) makes no sense, just WARN(x, ...)!
> ---
> arch/arm64/kvm/inject_fault.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm64/kvm/inject_fault.c b/arch/arm64/kvm/inject_fault.c
> index 6492397b73d7..613f223bc7a3 100644
> --- a/arch/arm64/kvm/inject_fault.c
> +++ b/arch/arm64/kvm/inject_fault.c
> @@ -327,6 +327,7 @@ void kvm_inject_size_fault(struct kvm_vcpu *vcpu)
> */
> void kvm_inject_undefined(struct kvm_vcpu *vcpu)
> {
> + WARN(vcpu_is_rec(vcpu), "Unexpected undefined exception injection to REC");
> if (vcpu_el1_is_32bit(vcpu))
> inject_undef32(vcpu);
> else

No. WARN_ONCE at a push, but even then, this looks dodgy.

Exceptions must be injectable. Otherwise, how do you respond to, for
example, a sysreg access for a feature that is hidden from the guest?

Will the RMM perform this in KVM's stead?

M.

--
Jazz isn't dead. It just smells funny.