Hi Ricardo, > > > > + > > > > +/* > > > > + * Set the guest's ID registers that are defined in sys_reg_descs[] > > > > + * with ID_SANITISED() to the host's sanitized value. > > > > + */ > > > > +void set_default_id_regs(struct kvm *kvm) > > > > +{ > > > > + int i; > > > > + u32 id; > > > > + const struct sys_reg_desc *rd; > > > > + u64 val; > > > > + > > > > + for (i = 0; i < ARRAY_SIZE(sys_reg_descs); i++) { > > > > + rd = &sys_reg_descs[i]; > > > > + if (rd->access != access_id_reg) > > > > + /* Not ID register, or hidden/reserved ID register */ > > > > + continue; > > > > + > > > > + id = reg_to_encoding(rd); > > > > + if (WARN_ON_ONCE(!is_id_reg(id))) > > > > + /* Shouldn't happen */ > > > > + continue; > > > > + > > > > + val = read_sanitised_ftr_reg(id); > > > > > > I'm a bit confused. Shouldn't the default+sanitized values already use > > > arm64_ftr_bits_kvm (instead of arm64_ftr_regs)? > > > > I'm not sure if I understand your question. > > arm64_ftr_bits_kvm is used for feature support checkings when > > userspace tries to modify a value of ID registers. > > With this patch, KVM just saves the sanitized values in the kvm's > > buffer, but userspace is still not allowed to modify values of ID > > registers yet. > > I hope it answers your question. > > Based on the previous commit I was assuming that some registers, like > id_aa64dfr0, > would default to the overwritten values as the sanitized values. More > specifically: if > userspace doesn't modify any ID reg, shouldn't the defaults have the > KVM overwritten > values (arm64_ftr_bits_kvm)? arm64_ftr_bits_kvm doesn't have arm64_ftr_reg but arm64_ftr_bits, and arm64_ftr_bits_kvm doesn't have the sanitized values. Thanks, Reiji _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm