Previously we use cpu_added_notifiers to register cpu hotplug notifier callback which is not able to pass/handle errors, so we switch it to unified hotplug handler API which allows to pass errors and would allow to cancel device_add in case of error. Thanks very much for Igor's review and suggestion.
--- v5: -rebase on the latest upstream and fix some comments. Patch 4/8: -split the check out of acpi_dev block. Patch 5/8: -move CPU hot-plug notifier cleanup hunk into Patch 6/8. Patch 6/8: -delete the caller of notifier_list_notify() in this patch. Patch 8/8: -rename acpi_set_local_sts to acpi_set_cpu_present_bit for better readability. v4: -split removal of CPU hotplug notifier into separate patch (Patch 6/8). Patch 1/7: -convert CPUState *cpu to DeviceState *dev like it's done for other handlers and do cast to CPU inside. Patch 5/7: -Make rtc_state as a link property in PCMachine rather than the global variables. -Split out the removal of unused notifier into separate patch. -Check the result of plug callback before update rtc_state. v3: -deal with start-up cpus in pc_cpu_plug as Igor suggested. v2: -Add 3 new patches(5/7,6/7,7/7), delete original patch 5/5. 1/5-->1/7 2/5-->2/7 3/5-->3/7 4/5-->4/7 Patch 1/7: -add errp argument to catch error. -return error instead of aborting if cpu id is invalid. -make acpi_cpu_plug_cb as a wrapper around AcpiCpuHotplug_add. Patch 3/7: -remove unused AcpiCpuHotplug_add directly. Patch 5/7: -switch the last user of cpu hotplug notifier to hotplug handler API, and remove the unused cpu hotplug notify. Patch 6/7: -split the function rename (just cleanup) into single patch. Patch 7/7: -introduce help function acpi_set_local_sts to keep the bit setting in one place. --- Gu Zheng (8): acpi/cpu: add cpu hotplug callback function to match hotplug_handler API acpi:ich9: convert cpu hotplug to hotplug_handler API acpi:piix4: convert cpu hotplug to hotplug_handler API pc: add cpu hotplug handler to PC_MACHINE pc: Update rtc_cmos in pc_cpu_plug qom/cpu: remove the unused CPU hot-plug notifier cpu-hotplug: rename function for better readability acpi/cpu-hotplug: introduce help function to keep bit setting in one place hw/acpi/cpu_hotplug.c | 35 ++++++++++++++++------ hw/acpi/ich9.c | 17 ++-------- hw/acpi/piix4.c | 18 ++--------- hw/i386/pc.c | 65 +++++++++++++++++++++++++++-------------- hw/i386/pc_piix.c | 2 +- hw/i386/pc_q35.c | 2 +- include/hw/acpi/cpu_hotplug.h | 7 ++-- include/hw/acpi/ich9.h | 1 - include/hw/i386/pc.h | 3 +- include/sysemu/sysemu.h | 3 -- qom/cpu.c | 10 ------ 11 files changed, 84 insertions(+), 79 deletions(-) -- 1.7.7