qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v2 7/9] s390x/cpu: Extra cleanup during CPU finalize


From: Matthew Rosato
Subject: [Qemu-devel] [PATCH v2 7/9] s390x/cpu: Extra cleanup during CPU finalize
Date: Thu, 19 Nov 2015 10:10:12 -0500

In preparation for unplug, do some additional cleanup
work to undo work originally done in cpu_exec_init.

This patch is based on work done by Bharata B Rao.

Signed-off-by: Matthew Rosato <address@hidden>
---
 target-s390x/cpu.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/target-s390x/cpu.c b/target-s390x/cpu.c
index 0ef67a1..060a3cc 100644
--- a/target-s390x/cpu.c
+++ b/target-s390x/cpu.c
@@ -261,6 +261,20 @@ static void s390_cpu_finalize(Object *obj)
 {
 #if !defined(CONFIG_USER_ONLY)
     S390CPU *cpu = S390_CPU(obj);
+    CPUState *cs = CPU(cpu);
+    CPUClass *cc = CPU_GET_CLASS(cs);
+    CPUS390XState *env = &cpu->env;
+
+    QTAILQ_REMOVE(&cpus, cs, node);
+    if (cc->vmsd != NULL) {
+        vmstate_unregister(NULL, cc->vmsd, cs);
+    }
+#if defined(CPU_SAVE_VERSION)
+    unregister_savevm(NULL, "cpu", cs->env_ptr);
+#endif
+    if (qdev_get_vmsd(DEVICE(cs)) == NULL) {
+        vmstate_unregister(NULL, &vmstate_cpu_common, cs);
+    }
 
     qemu_unregister_reset(s390_cpu_machine_reset_cb, cpu);
     g_free(cpu->irqstate);
-- 
1.9.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]