[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 2/8] kvm: Fix eflags corruption in kvm mode
From: |
Marcelo Tosatti |
Subject: |
[Qemu-devel] [PATCH 2/8] kvm: Fix eflags corruption in kvm mode |
Date: |
Mon, 22 Feb 2010 18:26:44 -0300 |
From: Jan Kiszka <address@hidden>
This should explain a lot of the weird breakages of upstream KVM we've
seen recently (actually we should have seen it much earlier):
Stop translating eflags into TCG format when in kvm mode as we never
translate it back and rather sync this broken state into the kernel.
Signed-off-by: Jan Kiszka <address@hidden>
Signed-off-by: Avi Kivity <address@hidden>
---
cpu-exec.c | 12 +++++++-----
1 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/cpu-exec.c b/cpu-exec.c
index 6a290fd..4029ea2 100644
--- a/cpu-exec.c
+++ b/cpu-exec.c
@@ -228,11 +228,13 @@ int cpu_exec(CPUState *env1)
env = env1;
#if defined(TARGET_I386)
- /* put eflags in CPU temporary format */
- CC_SRC = env->eflags & (CC_O | CC_S | CC_Z | CC_A | CC_P | CC_C);
- DF = 1 - (2 * ((env->eflags >> 10) & 1));
- CC_OP = CC_OP_EFLAGS;
- env->eflags &= ~(DF_MASK | CC_O | CC_S | CC_Z | CC_A | CC_P | CC_C);
+ if (!kvm_enabled()) {
+ /* put eflags in CPU temporary format */
+ CC_SRC = env->eflags & (CC_O | CC_S | CC_Z | CC_A | CC_P | CC_C);
+ DF = 1 - (2 * ((env->eflags >> 10) & 1));
+ CC_OP = CC_OP_EFLAGS;
+ env->eflags &= ~(DF_MASK | CC_O | CC_S | CC_Z | CC_A | CC_P | CC_C);
+ }
#elif defined(TARGET_SPARC)
#elif defined(TARGET_M68K)
env->cc_op = CC_OP_FLAGS;
--
1.6.6
- [Qemu-devel] [PATCH 0/8] [GIT PULL] qemu-kvm.git uq/master queue, Marcelo Tosatti, 2010/02/22
- [Qemu-devel] [PATCH 5/8] kvm specific wait_io_event, Marcelo Tosatti, 2010/02/22
- [Qemu-devel] [PATCH 8/8] kvm-all.c: define smp_wmb and use it for coalesced mmio, Marcelo Tosatti, 2010/02/22
- [Qemu-devel] [PATCH 3/8] kvm: Kill CR3_CACHE feature references, Marcelo Tosatti, 2010/02/22
- [Qemu-devel] [PATCH 6/8] kvm: consume internal signal with sigtimedwait, Marcelo Tosatti, 2010/02/22
- [Qemu-devel] [PATCH 7/8] kvm: remove pre-entry exit_request check with iothread enabled, Marcelo Tosatti, 2010/02/22
- [Qemu-devel] [PATCH 4/8] block SIGCHLD in vcpu thread(s), Marcelo Tosatti, 2010/02/22
- [Qemu-devel] [PATCH 1/8] use eventfd for iothread, Marcelo Tosatti, 2010/02/22
- [Qemu-devel] [PATCH 2/8] kvm: Fix eflags corruption in kvm mode,
Marcelo Tosatti <=
- [Qemu-devel] Re: [PATCH 0/8] [GIT PULL] qemu-kvm.git uq/master queue, Anthony Liguori, 2010/02/22