xics: add unrealize handler
Now that ICPState objects get finalized on CPU unplug, we should unregister reset handlers as well to avoid a QEMU crash at machine reset time. Signed-off-by: Greg Kurz <groug@kaod.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
16ee99805e
commit
62f94fc94f
@ -357,6 +357,10 @@ static void icp_realize(DeviceState *dev, Error **errp)
|
||||
qemu_register_reset(icp_reset, dev);
|
||||
}
|
||||
|
||||
static void icp_unrealize(DeviceState *dev, Error **errp)
|
||||
{
|
||||
qemu_unregister_reset(icp_reset, dev);
|
||||
}
|
||||
|
||||
static void icp_class_init(ObjectClass *klass, void *data)
|
||||
{
|
||||
@ -364,6 +368,7 @@ static void icp_class_init(ObjectClass *klass, void *data)
|
||||
|
||||
dc->vmsd = &vmstate_icp_server;
|
||||
dc->realize = icp_realize;
|
||||
dc->unrealize = icp_unrealize;
|
||||
}
|
||||
|
||||
static const TypeInfo icp_info = {
|
||||
|
@ -164,12 +164,18 @@ static void icp_kvm_realize(DeviceState *dev, Error **errp)
|
||||
qemu_register_reset(icp_kvm_reset, dev);
|
||||
}
|
||||
|
||||
static void icp_kvm_unrealize(DeviceState *dev, Error **errp)
|
||||
{
|
||||
qemu_unregister_reset(icp_kvm_reset, dev);
|
||||
}
|
||||
|
||||
static void icp_kvm_class_init(ObjectClass *klass, void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
ICPStateClass *icpc = ICP_CLASS(klass);
|
||||
|
||||
dc->realize = icp_kvm_realize;
|
||||
dc->unrealize = icp_kvm_unrealize;
|
||||
icpc->pre_save = icp_get_kvm_state;
|
||||
icpc->post_load = icp_set_kvm_state;
|
||||
icpc->cpu_setup = icp_kvm_cpu_setup;
|
||||
|
Loading…
Reference in New Issue
Block a user