qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [COMMIT d33a181] kvm: Rework VCPU reset


From: Anthony Liguori
Subject: [Qemu-commits] [COMMIT d33a181] kvm: Rework VCPU reset
Date: Fri, 22 May 2009 15:52:52 -0000

From: Jan Kiszka <address@hidden>

Use standard callback with highest order to synchronize VCPU on reset
after all device callbacks were execute. This allows to remove the
special kvm hook in qemu_system_reset.

Signed-off-by: Jan Kiszka <address@hidden>
Signed-off-by: Anthony Liguori <address@hidden>

diff --git a/kvm-all.c b/kvm-all.c
index eb4b9ea..c9f09c7 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -22,6 +22,7 @@
 
 #include "qemu-common.h"
 #include "sysemu.h"
+#include "hw/hw.h"
 #include "gdbstub.h"
 #include "kvm.h"
 
@@ -376,6 +377,11 @@ int kvm_check_extension(KVMState *s, unsigned int 
extension)
     return ret;
 }
 
+static void kvm_reset_vcpus(void *opaque)
+{
+    kvm_sync_vcpus();
+}
+
 int kvm_init(int smp_cpus)
 {
     KVMState *s;
@@ -462,6 +468,8 @@ int kvm_init(int smp_cpus)
     if (ret < 0)
         goto err;
 
+    qemu_register_reset(kvm_reset_vcpus, INT_MAX, NULL);
+
     kvm_state = s;
 
     return 0;
diff --git a/vl.c b/vl.c
index 9d7ee7a..2c1f0e0 100644
--- a/vl.c
+++ b/vl.c
@@ -3659,8 +3659,6 @@ void qemu_system_reset(void)
     for(re = first_reset_entry; re != NULL; re = re->next) {
         re->func(re->opaque);
     }
-    if (kvm_enabled())
-        kvm_sync_vcpus();
 }
 
 void qemu_system_reset_request(void)




reply via email to

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