[PATCH v2 2/3] KVM: arm64: Plumb cp10 ID traps through the AArch64 sysreg handler
Oliver Upton
oupton at google.com
Sun Apr 3 22:28:33 PDT 2022
Hi Reiji,
On Sun, Apr 03, 2022 at 08:57:47PM -0700, Reiji Watanabe wrote:
> > +int kvm_handle_cp10_id(struct kvm_vcpu *vcpu)
> > +{
> > + int Rt = kvm_vcpu_sys_get_rt(vcpu);
> > + u32 esr = kvm_vcpu_get_esr(vcpu);
> > + struct sys_reg_params params;
> > + int ret;
> > +
> > + /* UNDEF on any unhandled register or an attempted write */
> > + if (!kvm_esr_cp10_id_to_sys64(esr, ¶ms) || params.is_write) {
> > + kvm_inject_undefined(vcpu);
>
> Nit: For debugging, it might be more useful to use unhandled_cp_access()
> (, which needs to be changed to support ESR_ELx_EC_CP10_ID though)
> rather than directly calling kvm_inject_undefined().
A very worthy nit, you spotted my laziness in shunting straight to
kvm_inject_undefined() :)
Thinking about this a bit more deeply, this code should be dead. The
only time either of these conditions would happen is on a broken
implementation. Probably should still handle it gracefully in case the
CP10 handling in KVM becomes (or is in my own patch!) busted.
> Reviewed-by: Reiji Watanabe <reijiw at google.com>
Appreciated!
--
Thanks,
Oliver
More information about the linux-arm-kernel
mailing list