On Thu, Feb 02, 2017 at 04:02:35PM +0100, Igor Mammedov wrote: > spapr_core_unplug() were essentially spapr_core_unplug_request() > handler that requested CPU removal and registered callback > which did actual cpu core removali but it was called from > spapr_machine_device_unplug() which is intended for actual object > removal. Commit (cf632463 spapr: Memory hot-unplug support) > sort of fixed it introducing spapr_machine_device_unplug_request() > and calling spapr_core_unplug() but it hasn't renamed callback and > by mistake calls it from spapr_machine_device_unplug(). > > However spapr_machine_device_unplug() isn't ever called for > cpu core since spapr_core_release() doesn't follow expected > hotunplug call flow which is: > 1: device_del() -> > hotplug_handler_unplug_request() -> > set destroy_cb() > 2: destroy_cb() -> > hotplug_handler_unplug() -> > object_unparent // actual device removal > > Fix it by renaming spapr_core_unplug() to spapr_core_unplug_request() > which is called from spapr_machine_device_unplug_request() and > making spapr_core_release() call hotplug_handler_unplug() which > will call spapr_machine_device_unplug() -> spapr_core_unplug() > to remove cpu core. > > Signed-off-by: Igor Mammedov <imamm...@redhat.com> > --- > hw/ppc/spapr.c | 18 ++++++++++++++----
Reveiwed-by: Bharata B Rao <bhar...@linux.vnet.ibm.com> Regards, Bharata.