mirror of
https://github.com/qemu/qemu.git
synced 2025-08-16 06:43:21 +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)
|
||||
{
|
||||
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,
|
||||
&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,
|
||||
NULL, &lec->parent_phases);
|
||||
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)
|
||||
{
|
||||
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,
|
||||
&lecc->parent_realize);
|
||||
device_class_set_parent_unrealize(dc, loongarch_extioi_common_unrealize,
|
||||
&lecc->parent_unrealize);
|
||||
resettable_class_set_parent_phases(rc, NULL,
|
||||
loongarch_extioi_common_reset_hold,
|
||||
NULL, &lecc->parent_phases);
|
||||
|
@ -22,7 +22,6 @@ struct LoongArchExtIOIClass {
|
||||
LoongArchExtIOICommonClass parent_class;
|
||||
|
||||
DeviceRealize parent_realize;
|
||||
DeviceUnrealize parent_unrealize;
|
||||
ResettablePhases parent_phases;
|
||||
};
|
||||
|
||||
|
@ -94,6 +94,7 @@ struct LoongArchExtIOICommonClass {
|
||||
SysBusDeviceClass parent_class;
|
||||
|
||||
DeviceRealize parent_realize;
|
||||
DeviceUnrealize parent_unrealize;
|
||||
ResettablePhases parent_phases;
|
||||
int (*pre_save)(void *s);
|
||||
int (*post_load)(void *s, int version_id);
|
||||
|
Loading…
Reference in New Issue
Block a user