On Mon, Jan 13, 2025 at 9:14 AM Philippe Mathieu-Daudé <phi...@linaro.org> wrote: > > virt_machine_init() creates the HARTs vCPUs, then later > virt_machine_done() calls create_fdt_sockets(), so the > latter has access to the first vCPU via: > > RISCVVirtState { > RISCVHartArrayState { > RISCVCPU *harts; > ... > > } soc[VIRT_SOCKETS_MAX]; > ... > > } s; > > Directly use that instead of the &first_cpu global. > > Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Reviewed-by: Alistair Francis <alistair.fran...@wdc.com> Alistair > --- > hw/riscv/virt.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c > index 9e8876be29b..241389d72f8 100644 > --- a/hw/riscv/virt.c > +++ b/hw/riscv/virt.c > @@ -750,7 +750,7 @@ static void create_fdt_sockets(RISCVVirtState *s, const > MemMapEntry *memmap, > qemu_fdt_add_subnode(ms->fdt, "/cpus"); > qemu_fdt_setprop_cell(ms->fdt, "/cpus", "timebase-frequency", > kvm_enabled() ? > - > kvm_riscv_get_timebase_frequency(RISCV_CPU(first_cpu)) : > + > kvm_riscv_get_timebase_frequency(&s->soc->harts[0]) : > RISCV_ACLINT_DEFAULT_TIMEBASE_FREQ); > qemu_fdt_setprop_cell(ms->fdt, "/cpus", "#size-cells", 0x0); > qemu_fdt_setprop_cell(ms->fdt, "/cpus", "#address-cells", 0x1); > -- > 2.47.1 > >