On Mon, 9 Mar 2020 at 12:11, Philippe Mathieu-Daudé <phi...@redhat.com> wrote: > > cpu_reset() might modify architecture-specific fields allocated > by qemu_init_vcpu(). To avoid bugs similar to the one fixed in > commit 00d0f7cb66 when introducing new architectures, assert a > vCPU is created before resetting it. > > Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com> > --- > hw/core/cpu.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/hw/core/cpu.c b/hw/core/cpu.c > index fe65ca62ac..09e49f8d6a 100644 > --- a/hw/core/cpu.c > +++ b/hw/core/cpu.c > @@ -251,6 +251,7 @@ void cpu_reset(CPUState *cpu) > { > CPUClass *klass = CPU_GET_CLASS(cpu); > > + assert(cpu->created); > if (klass->reset != NULL) { > (*klass->reset)(cpu); > }
This will conflict with the change to use DeviceClass::reset. Ideally we should do an equivalent assert in the DeviceClass (and flush out all the bugs where we forgot to realize the device before using it). thanks -- PMM