On Thu, Nov 23, 2023 at 04:15:28PM -0300, Daniel Henrique Barboza wrote: > Profiles will need to validate satp_mode during their own finalize > methods. This will occur inside riscv_tcg_cpu_finalize_features() for > TCG. Given that satp_mode does not have any pre-req from the accelerator > finalize() method, it's safe to finalize it ealier. > > Signed-off-by: Daniel Henrique Barboza <dbarb...@ventanamicro.com> > --- > target/riscv/cpu.c | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > > diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c > index 29a9f77702..a395c77bda 100644 > --- a/target/riscv/cpu.c > +++ b/target/riscv/cpu.c > @@ -1056,6 +1056,14 @@ void riscv_cpu_finalize_features(RISCVCPU *cpu, Error > **errp) > { > Error *local_err = NULL; > > +#ifndef CONFIG_USER_ONLY > + riscv_cpu_satp_mode_finalize(cpu, &local_err); > + if (local_err != NULL) { > + error_propagate(errp, local_err); > + return; > + } > +#endif > + > /* > * KVM accel does not have a specialized finalize() > * callback because its extensions are validated > @@ -1068,14 +1076,6 @@ void riscv_cpu_finalize_features(RISCVCPU *cpu, Error > **errp) > return; > } > } > - > -#ifndef CONFIG_USER_ONLY > - riscv_cpu_satp_mode_finalize(cpu, &local_err); > - if (local_err != NULL) { > - error_propagate(errp, local_err); > - return; > - } > -#endif
Assuming we'll be getting KVM's supported mode with KVM_REG_RISCV_CONFIG_REG(satp_mode) prior to calling riscv_cpu_finalize_features(), then this looks good to me. Reviewed-by: Andrew Jones <ajo...@ventanamicro.com> Thanks, drew