Re: [PATCH] KVM: arm64: Inject UNDEF when host is executing an smc with imm16 != 0

From: Sebastian Ene

Date: Tue Mar 24 2026 - 11:05:20 EST


On Tue, Mar 24, 2026 at 02:43:27PM +0000, Marc Zyngier wrote:
> On Tue, 24 Mar 2026 13:57:28 +0000,
> Sebastian Ene <sebastianene@xxxxxxxxxx> wrote:
> >
> > The ARM Service Calling Convention (SMCCC) specifies that the function
> > identifier and parameters should be passed in registers, leaving the
> > 16-bit immediate field of the SMC instruction un-handled.
> > Currently, our pKVM handler ignores the immediate value, which could lead
> > to non-compliant software relying on implementation-defined behavior.
> > Enforce the host kernel running under pKVM to use an immediate value
> > of 0 by decoding the ISS from the ESR_EL2 and inject an undefined
> > instruction exception back to the caller.

Hi Marc,

>
> No, that's completely wrong. SMC never UNDEFs, unless EL3 isn't
> implemented. You can't just decide to generate an UNDEF because you
> don't like the immediate.
>
> All you are allowed to do is to return an error code.

Thanks for letting me know, I will update the patch to do this.

>
> Thanks,
>
> M.
>

Cheers,
Sebastian

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