add interface cpu_common_unrealizefn() for emiting vcpu unplug notifier to ACPI, then ACPI could send sci interrupt to OS for hot-remove vcpu.
Signed-off-by: Chen Fan <[email protected]> --- qom/cpu.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/qom/cpu.c b/qom/cpu.c index 728b83b..78038ab 100644 --- a/qom/cpu.c +++ b/qom/cpu.c @@ -228,6 +228,17 @@ static void cpu_common_realizefn(DeviceState *dev, Error **errp) } } +static void cpu_common_unrealizefn(DeviceState *dev, Error **errp) +{ + CPUNotifier notifier; + + notifier.dev = dev; + notifier.type = UNPLUG; + + notifier_list_notify(&cpu_hotplug_notifiers, ¬ifier); +} + + static void cpu_common_initfn(Object *obj) { CPUState *cpu = CPU(obj); @@ -258,6 +269,7 @@ static void cpu_class_init(ObjectClass *klass, void *data) k->gdb_read_register = cpu_common_gdb_read_register; k->gdb_write_register = cpu_common_gdb_write_register; dc->realize = cpu_common_realizefn; + dc->unrealize = cpu_common_unrealizefn; /* * Reason: CPUs still need special care by board code: wiring up * IRQs, adding reset handlers, halting non-first CPUs, ... -- 1.8.1.4
