Allow hotplug of s390-cpu devices via device_add, and unplug via device_del.
Signed-off-by: Matthew Rosato <mjros...@linux.vnet.ibm.com> --- target-s390x/cpu.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/target-s390x/cpu.c b/target-s390x/cpu.c index 4b83a09..a4be7b7 100644 --- a/target-s390x/cpu.c +++ b/target-s390x/cpu.c @@ -31,6 +31,7 @@ #include "trace.h" #ifndef CONFIG_USER_ONLY #include "sysemu/arch_init.h" +#include "hw/s390x/sclp.h" #include "sysemu/sysemu.h" #endif @@ -225,6 +226,12 @@ static void s390_cpu_realizefn(DeviceState *dev, Error **errp) #endif scc->parent_realize(dev, errp); + +#if !defined(CONFIG_USER_ONLY) + if (dev->hotplugged) { + raise_irq_cpu_hotplug(); + } +#endif } static void s390_cpu_initfn(Object *obj) @@ -398,6 +405,10 @@ static void s390_cpu_class_init(ObjectClass *oc, void *data) scc->parent_realize = dc->realize; dc->realize = s390_cpu_realizefn; + /* Necessary prep-work for s390-cpu is handled in + * instance_init() and realize(), so allow device_add */ + dc->cannot_instantiate_with_device_add_yet = false; + scc->parent_reset = cc->reset; #if !defined(CONFIG_USER_ONLY) scc->load_normal = s390_cpu_load_normal; -- 1.9.1