mirror of https://github.com/xqemu/xqemu.git
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);
|
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)
|
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->vmsd = &vmstate_icp_server;
|
||||||
dc->realize = icp_realize;
|
dc->realize = icp_realize;
|
||||||
|
dc->unrealize = icp_unrealize;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const TypeInfo icp_info = {
|
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);
|
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)
|
static void icp_kvm_class_init(ObjectClass *klass, void *data)
|
||||||
{
|
{
|
||||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||||
ICPStateClass *icpc = ICP_CLASS(klass);
|
ICPStateClass *icpc = ICP_CLASS(klass);
|
||||||
|
|
||||||
dc->realize = icp_kvm_realize;
|
dc->realize = icp_kvm_realize;
|
||||||
|
dc->unrealize = icp_kvm_unrealize;
|
||||||
icpc->pre_save = icp_get_kvm_state;
|
icpc->pre_save = icp_get_kvm_state;
|
||||||
icpc->post_load = icp_set_kvm_state;
|
icpc->post_load = icp_set_kvm_state;
|
||||||
icpc->cpu_setup = icp_kvm_cpu_setup;
|
icpc->cpu_setup = icp_kvm_cpu_setup;
|
||||||
|
|
Loading…
Reference in New Issue