On Fri, Nov 10, 2017 at 12:23 PM, Eduardo Habkost <ehabk...@redhat.com> wrote: > On Fri, Nov 10, 2017 at 02:53:42PM -0500, Emilio G. Cota wrote: >> 55c3cee ("qom: Introduce CPUClass.tcg_initialize", 2017-10-24) >> introduces a per-CPUClass bool that we check so that the target CPU >> is initialized for TCG only once. This works well except when >> we end up creating more than one CPUClass, in which case we end >> up incorrectly initializing TCG more than once, i.e. once for >> each CPUClass. >> >> This can be replicated with: >> $ aarch64-softmmu/qemu-system-aarch64 -machine xlnx-zcu102 -smp 6 \ >> -global driver=xlnx,,zynqmp,property=has_rpu,value=on >> In this case the class name of the "RPUs" is prefixed by "cortex-r5-", >> whereas the "regular" CPUs are prefixed by "cortex-a53-". This >> results in two CPUClass instances being created. >> >> Fix it by introducing a static variable, so that only the first >> target CPU being initialized will initialize the target-dependent >> part of TCG, regardless of CPUClass instances. >> >> Fixes: 55c3ceef61fcf06fc98ddc752b7cce788ce7680b >> Signed-off-by: Emilio G. Cota <c...@braap.org> > > Reviewed-by: Eduardo Habkost <ehabk...@redhat.com>
Reviewed-by: Alistair Francis <alistair.fran...@xilinx.com> Tested-by: Alistair Francis <alistair.fran...@xilinx.com> Alistair > > -- > Eduardo >