Commit d33a1810d7f558dd1d486bc84f1cf8f96c982e2d
Committed by
Anthony Liguori
1 parent
8217606e
kvm: Rework VCPU reset
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 <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Showing
2 changed files
with
8 additions
and
2 deletions
kvm-all.c
| ... | ... | @@ -22,6 +22,7 @@ |
| 22 | 22 | |
| 23 | 23 | #include "qemu-common.h" |
| 24 | 24 | #include "sysemu.h" |
| 25 | +#include "hw/hw.h" | |
| 25 | 26 | #include "gdbstub.h" |
| 26 | 27 | #include "kvm.h" |
| 27 | 28 | |
| ... | ... | @@ -376,6 +377,11 @@ int kvm_check_extension(KVMState *s, unsigned int extension) |
| 376 | 377 | return ret; |
| 377 | 378 | } |
| 378 | 379 | |
| 380 | +static void kvm_reset_vcpus(void *opaque) | |
| 381 | +{ | |
| 382 | + kvm_sync_vcpus(); | |
| 383 | +} | |
| 384 | + | |
| 379 | 385 | int kvm_init(int smp_cpus) |
| 380 | 386 | { |
| 381 | 387 | KVMState *s; |
| ... | ... | @@ -462,6 +468,8 @@ int kvm_init(int smp_cpus) |
| 462 | 468 | if (ret < 0) |
| 463 | 469 | goto err; |
| 464 | 470 | |
| 471 | + qemu_register_reset(kvm_reset_vcpus, INT_MAX, NULL); | |
| 472 | + | |
| 465 | 473 | kvm_state = s; |
| 466 | 474 | |
| 467 | 475 | return 0; | ... | ... |
vl.c