|
@@ -3595,6 +3595,7 @@ void spapr_lmb_release(DeviceState *dev)
|
|
|
* unplug handler chain. This can never fail.
|
|
|
*/
|
|
|
hotplug_handler_unplug(hotplug_ctrl, dev, &error_abort);
|
|
|
+ object_unparent(OBJECT(dev));
|
|
|
}
|
|
|
|
|
|
static void spapr_memory_unplug(HotplugHandler *hotplug_dev, DeviceState *dev)
|
|
@@ -3603,7 +3604,7 @@ static void spapr_memory_unplug(HotplugHandler *hotplug_dev, DeviceState *dev)
|
|
|
sPAPRDIMMState *ds = spapr_pending_dimm_unplugs_find(spapr, PC_DIMM(dev));
|
|
|
|
|
|
pc_dimm_unplug(PC_DIMM(dev), MACHINE(hotplug_dev));
|
|
|
- object_unparent(OBJECT(dev));
|
|
|
+ object_property_set_bool(OBJECT(dev), false, "realized", NULL);
|
|
|
spapr_pending_dimm_unplugs_remove(spapr, ds);
|
|
|
}
|
|
|
|
|
@@ -3667,6 +3668,7 @@ void spapr_core_release(DeviceState *dev)
|
|
|
|
|
|
/* Call the unplug handler chain. This can never fail. */
|
|
|
hotplug_handler_unplug(hotplug_ctrl, dev, &error_abort);
|
|
|
+ object_unparent(OBJECT(dev));
|
|
|
}
|
|
|
|
|
|
static void spapr_core_unplug(HotplugHandler *hotplug_dev, DeviceState *dev)
|
|
@@ -3689,7 +3691,7 @@ static void spapr_core_unplug(HotplugHandler *hotplug_dev, DeviceState *dev)
|
|
|
|
|
|
assert(core_slot);
|
|
|
core_slot->cpu = NULL;
|
|
|
- object_unparent(OBJECT(dev));
|
|
|
+ object_property_set_bool(OBJECT(dev), false, "realized", NULL);
|
|
|
}
|
|
|
|
|
|
static
|
|
@@ -3940,11 +3942,12 @@ void spapr_phb_release(DeviceState *dev)
|
|
|
HotplugHandler *hotplug_ctrl = qdev_get_hotplug_handler(dev);
|
|
|
|
|
|
hotplug_handler_unplug(hotplug_ctrl, dev, &error_abort);
|
|
|
+ object_unparent(OBJECT(dev));
|
|
|
}
|
|
|
|
|
|
static void spapr_phb_unplug(HotplugHandler *hotplug_dev, DeviceState *dev)
|
|
|
{
|
|
|
- object_unparent(OBJECT(dev));
|
|
|
+ object_property_set_bool(OBJECT(dev), false, "realized", NULL);
|
|
|
}
|
|
|
|
|
|
static void spapr_phb_unplug_request(HotplugHandler *hotplug_dev,
|