On Wed, Jul 06, 2016 at 02:01:14PM +0200, Igor Mammedov wrote: > On Wed, 6 Jul 2016 14:29:19 +0530 > Bharata B Rao <bhar...@linux.vnet.ibm.com> wrote: > > > cpu_index is used as migration_id by default. For machine type > > versions that set use-migration-id property, cpu_dt_it is returned. > > > > Signed-off-by: Bharata B Rao <bhar...@linux.vnet.ibm.com> > > --- > > target-ppc/translate_init.c | 12 ++++++++++++ > > 1 file changed, 12 insertions(+) > > > > diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c > > index efd6b88..9ca2f5e 100644 > > --- a/target-ppc/translate_init.c > > +++ b/target-ppc/translate_init.c > > @@ -10359,6 +10359,17 @@ static gchar *ppc_gdb_arch_name(CPUState *cs) > > #endif > > } > > > > +static int ppc_cpu_get_migration_id(CPUState *cs) > > +{ > > + PowerPCCPU *cpu = POWERPC_CPU(cs); > > + > > + if (cs->use_migration_id) { > > + return (int) cpu->cpu_dt_id; > Could cpu_dt_id have value bigger than 32bit int? If yes, it's not safe > to do so, that's the reason why I'm going to use index in possible_cpus > on ARM and for the sake of uniformity do the same for x86 (even though > it's possible to use 32bit APIC ID).
No, I'm pretty sure the DT id fits in a 32-bit field in the device tree itself, so it should be safe. > > > + } else { > > + return cs->cpu_index; > > + } > > +} > > + > > static void ppc_cpu_class_init(ObjectClass *oc, void *data) > > { > > PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc); > > @@ -10412,6 +10423,7 @@ static void ppc_cpu_class_init(ObjectClass > > *oc, void *data) #ifndef CONFIG_USER_ONLY > > cc->virtio_is_big_endian = ppc_cpu_is_big_endian; > > #endif > > + cc->get_migration_id = ppc_cpu_get_migration_id; > > > > dc->fw_name = "PowerPC,UNKNOWN"; > > } > -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature