mirror of https://github.com/xemu-project/xemu.git
spapr_drc: add unrealize method to physical DRC class
When hot-unplugging a PHB, all its PCI DRC connectors get unrealized. This patch adds an unrealize method to the physical DRC class, in order to undo registrations performed in realize_physical(). Signed-off-by: Greg Kurz <groug@kaod.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
dba95ebbf8
commit
379ae096f7
|
@ -630,12 +630,28 @@ static void realize_physical(DeviceState *d, Error **errp)
|
|||
qemu_register_reset(drc_physical_reset, drcp);
|
||||
}
|
||||
|
||||
static void unrealize_physical(DeviceState *d, Error **errp)
|
||||
{
|
||||
sPAPRDRCPhysical *drcp = SPAPR_DRC_PHYSICAL(d);
|
||||
Error *local_err = NULL;
|
||||
|
||||
unrealize(d, &local_err);
|
||||
if (local_err) {
|
||||
error_propagate(errp, local_err);
|
||||
return;
|
||||
}
|
||||
|
||||
vmstate_unregister(DEVICE(drcp), &vmstate_spapr_drc_physical, drcp);
|
||||
qemu_unregister_reset(drc_physical_reset, drcp);
|
||||
}
|
||||
|
||||
static void spapr_drc_physical_class_init(ObjectClass *k, void *data)
|
||||
{
|
||||
DeviceClass *dk = DEVICE_CLASS(k);
|
||||
sPAPRDRConnectorClass *drck = SPAPR_DR_CONNECTOR_CLASS(k);
|
||||
|
||||
dk->realize = realize_physical;
|
||||
dk->unrealize = unrealize_physical;
|
||||
drck->dr_entity_sense = physical_entity_sense;
|
||||
drck->isolate = drc_isolate_physical;
|
||||
drck->unisolate = drc_unisolate_physical;
|
||||
|
|
Loading…
Reference in New Issue