@@ -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)
@@ -385,6 +392,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;
Allow hotplug of s390-cpu devices via device_add, and unplug via device_del. Signed-off-by: Matthew Rosato <mjrosato@linux.vnet.ibm.com> --- target-s390x/cpu.c | 11 +++++++++++ 1 file changed, 11 insertions(+)