mirror of
https://github.com/qemu/qemu.git
synced 2025-08-16 14:54:29 +00:00
hw/intc/loongarch_extioi: Move unrealize function to common code
Memory about LoongArchExtIOICommonState::cpu is allocated in common code, it had better be freed in common code also. Signed-off-by: Bibo Mao <maobibo@loongson.cn> Reviewed-by: Song Gao <gaosong@loongson.cn>
This commit is contained in:
parent
df6fe2abf2
commit
90cff30d72
@ -377,13 +377,6 @@ static void loongarch_extioi_realize(DeviceState *dev, Error **errp)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void loongarch_extioi_unrealize(DeviceState *dev)
|
|
||||||
{
|
|
||||||
LoongArchExtIOICommonState *s = LOONGARCH_EXTIOI_COMMON(dev);
|
|
||||||
|
|
||||||
g_free(s->cpu);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void loongarch_extioi_reset_hold(Object *obj, ResetType type)
|
static void loongarch_extioi_reset_hold(Object *obj, ResetType type)
|
||||||
{
|
{
|
||||||
LoongArchExtIOIClass *lec = LOONGARCH_EXTIOI_GET_CLASS(obj);
|
LoongArchExtIOIClass *lec = LOONGARCH_EXTIOI_GET_CLASS(obj);
|
||||||
@ -436,8 +429,6 @@ static void loongarch_extioi_class_init(ObjectClass *klass, const void *data)
|
|||||||
|
|
||||||
device_class_set_parent_realize(dc, loongarch_extioi_realize,
|
device_class_set_parent_realize(dc, loongarch_extioi_realize,
|
||||||
&lec->parent_realize);
|
&lec->parent_realize);
|
||||||
device_class_set_parent_unrealize(dc, loongarch_extioi_unrealize,
|
|
||||||
&lec->parent_unrealize);
|
|
||||||
resettable_class_set_parent_phases(rc, NULL, loongarch_extioi_reset_hold,
|
resettable_class_set_parent_phases(rc, NULL, loongarch_extioi_reset_hold,
|
||||||
NULL, &lec->parent_phases);
|
NULL, &lec->parent_phases);
|
||||||
lecc->pre_save = vmstate_extioi_pre_save;
|
lecc->pre_save = vmstate_extioi_pre_save;
|
||||||
|
@ -108,6 +108,13 @@ static void loongarch_extioi_common_realize(DeviceState *dev, Error **errp)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void loongarch_extioi_common_unrealize(DeviceState *dev)
|
||||||
|
{
|
||||||
|
LoongArchExtIOICommonState *s = LOONGARCH_EXTIOI_COMMON(dev);
|
||||||
|
|
||||||
|
g_free(s->cpu);
|
||||||
|
}
|
||||||
|
|
||||||
static void loongarch_extioi_common_reset_hold(Object *obj, ResetType type)
|
static void loongarch_extioi_common_reset_hold(Object *obj, ResetType type)
|
||||||
{
|
{
|
||||||
LoongArchExtIOICommonClass *lecc = LOONGARCH_EXTIOI_COMMON_GET_CLASS(obj);
|
LoongArchExtIOICommonClass *lecc = LOONGARCH_EXTIOI_COMMON_GET_CLASS(obj);
|
||||||
@ -221,6 +228,8 @@ static void loongarch_extioi_common_class_init(ObjectClass *klass,
|
|||||||
|
|
||||||
device_class_set_parent_realize(dc, loongarch_extioi_common_realize,
|
device_class_set_parent_realize(dc, loongarch_extioi_common_realize,
|
||||||
&lecc->parent_realize);
|
&lecc->parent_realize);
|
||||||
|
device_class_set_parent_unrealize(dc, loongarch_extioi_common_unrealize,
|
||||||
|
&lecc->parent_unrealize);
|
||||||
resettable_class_set_parent_phases(rc, NULL,
|
resettable_class_set_parent_phases(rc, NULL,
|
||||||
loongarch_extioi_common_reset_hold,
|
loongarch_extioi_common_reset_hold,
|
||||||
NULL, &lecc->parent_phases);
|
NULL, &lecc->parent_phases);
|
||||||
|
@ -22,7 +22,6 @@ struct LoongArchExtIOIClass {
|
|||||||
LoongArchExtIOICommonClass parent_class;
|
LoongArchExtIOICommonClass parent_class;
|
||||||
|
|
||||||
DeviceRealize parent_realize;
|
DeviceRealize parent_realize;
|
||||||
DeviceUnrealize parent_unrealize;
|
|
||||||
ResettablePhases parent_phases;
|
ResettablePhases parent_phases;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -94,6 +94,7 @@ struct LoongArchExtIOICommonClass {
|
|||||||
SysBusDeviceClass parent_class;
|
SysBusDeviceClass parent_class;
|
||||||
|
|
||||||
DeviceRealize parent_realize;
|
DeviceRealize parent_realize;
|
||||||
|
DeviceUnrealize parent_unrealize;
|
||||||
ResettablePhases parent_phases;
|
ResettablePhases parent_phases;
|
||||||
int (*pre_save)(void *s);
|
int (*pre_save)(void *s);
|
||||||
int (*post_load)(void *s, int version_id);
|
int (*post_load)(void *s, int version_id);
|
||||||
|
Loading…
Reference in New Issue
Block a user