Am 16.04.2013 00:12, schrieb Igor Mammedov: > ... during startup, so it would be possible to unplug it later > and set bus_type to TYPE_ICC_BUS for X86CPU type to make device_add > attach hotplugged CPU to ICC bus. > > Signed-off-by: Igor Mammedov <imamm...@redhat.com>
Reviewed-by: Andreas Färber <afaer...@suse.de> But still one question... > --- > target-i386/cpu.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/target-i386/cpu.c b/target-i386/cpu.c > index 6d6c527..3b5f90b 100644 > --- a/target-i386/cpu.c > +++ b/target-i386/cpu.c > @@ -41,6 +41,7 @@ > #endif > > #include "sysemu/sysemu.h" > +#include "hw/i386/icc_bus.h" > #ifndef CONFIG_USER_ONLY > #include "hw/xen/xen.h" > #include "hw/sysbus.h" > @@ -1609,6 +1610,7 @@ X86CPU *cpu_x86_create(const char *cpu_model, Error > **errp) > gchar **model_pieces; > char *name, *features; > Error *error = NULL; > + Object *icc_bus = object_resolve_path_type("icc-bus", TYPE_ICC_BUS, > NULL); > > model_pieces = g_strsplit(cpu_model, ",", 2); > if (!model_pieces[0]) { > @@ -1619,6 +1621,10 @@ X86CPU *cpu_x86_create(const char *cpu_model, Error > **errp) > features = model_pieces[1]; > > cpu = X86_CPU(object_new(TYPE_X86_CPU)); > + if (icc_bus) { > + qdev_set_parent_bus(DEVICE(cpu), BUS(icc_bus)); > + object_unref(OBJECT(cpu)); > + } > env = &cpu->env; > env->cpu_model_str = cpu_model; > You seem to be avoiding making lack of icc-bus an error although you add it for both PC and q35 PC - which non-ICC use cases are you thinking of? Andreas > @@ -2330,6 +2336,7 @@ static void x86_cpu_common_class_init(ObjectClass *oc, > void *data) > > xcc->parent_realize = dc->realize; > dc->realize = x86_cpu_realizefn; > + dc->bus_type = TYPE_ICC_BUS; > > xcc->parent_reset = cc->reset; > cc->reset = x86_cpu_reset; > -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg