在 2024/7/23 下午4:41, Philippe Mathieu-Daudé 写道:
On 18/7/24 15:32, Philippe Mathieu-Daudé wrote:
From: Bibo Mao <maob...@loongson.cn>
In preparation to extract common IPI code in few commits,
extract loongson_ipi_common_finalize().
Signed-off-by: Bibo Mao <maob...@loongson.cn>
[PMD: Extracted from bigger commit, added commit description]
Co-Developed-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Reviewed-by: Bibo Mao <maob...@loongson.cn>
Tested-by: Bibo Mao <maob...@loongson.cn>
Acked-by: Song Gao <gaos...@loongson.cn>
---
hw/intc/loongson_ipi.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/hw/intc/loongson_ipi.c b/hw/intc/loongson_ipi.c
index d870af39c1..960d1e604f 100644
--- a/hw/intc/loongson_ipi.c
+++ b/hw/intc/loongson_ipi.c
@@ -357,13 +357,18 @@ static void loongson_ipi_class_init(ObjectClass
*klass, void *data)
dc->vmsd = &vmstate_loongson_ipi;
}
-static void loongson_ipi_finalize(Object *obj)
+static void loongson_ipi_common_finalize(Object *obj)
{
LoongsonIPIState *s = LOONGSON_IPI(obj);
g_free(s->cpu);
Unfortunately the current code is bogus, @cpu is allocated in
loongson_ipi_realize(), a DeviceRealize handler, so must be
de-allocated in a DeviceUnrealize equivalent. Not at the instance
finalize cleanup which is too late because we could leak after
UNREALIZE -> REALIZE sequences.
Yes, we should use DeviecUnrealize to free s->cpu.
I will send a patch to correct it.
Thanks.
Song Gao
}
+static void loongson_ipi_finalize(Object *obj)
+{
+ loongson_ipi_common_finalize(obj);
+}
+
static const TypeInfo loongson_ipi_types[] = {
{
.name = TYPE_LOONGSON_IPI,