aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kiszka <jan.kiszka@siemens.com>2019-07-22 06:00:08 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2019-07-24 11:21:59 +0200
commitbec7156a45aa6712395a770646f7078b1fc82acd (patch)
tree4cce101c5651a2f017d36b1592fd09daea685d31
parent9c5aad84da1c37429d06c193f23a8df6445ed29e (diff)
downloadqemu-bec7156a45aa6712395a770646f7078b1fc82acd.zip
qemu-bec7156a45aa6712395a770646f7078b1fc82acd.tar.gz
qemu-bec7156a45aa6712395a770646f7078b1fc82acd.tar.bz2
i386/kvm: Do not sync nested state during runtime
Writing the nested state e.g. after a vmport access can invalidate important parts of the kernel-internal state, and it is not needed as well. So leave this out from KVM_PUT_RUNTIME_STATE. Suggested-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Message-Id: <bdd53f40-4e60-f3ae-7ec6-162198214953@siemens.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--target/i386/kvm.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/target/i386/kvm.c b/target/i386/kvm.c
index ada89d2..dbbb137 100644
--- a/target/i386/kvm.c
+++ b/target/i386/kvm.c
@@ -3563,12 +3563,12 @@ int kvm_arch_put_registers(CPUState *cpu, int level)
assert(cpu_is_stopped(cpu) || qemu_cpu_is_self(cpu));
- ret = kvm_put_nested_state(x86_cpu);
- if (ret < 0) {
- return ret;
- }
-
if (level >= KVM_PUT_RESET_STATE) {
+ ret = kvm_put_nested_state(x86_cpu);
+ if (ret < 0) {
+ return ret;
+ }
+
ret = kvm_put_msr_feature_control(x86_cpu);
if (ret < 0) {
return ret;