summaryrefslogtreecommitdiffstats
path: root/bsd-user
diff options
context:
space:
mode:
authorPaolo Bonzini2014-05-15 16:07:04 +0200
committerPaolo Bonzini2014-05-21 18:02:08 +0200
commitb98dbc90950cd4e43ab9b4f8300dbeae6cf8c8cb (patch)
tree5ccd530f79ccd636d971e6e0336e090ad0afdfa6 /bsd-user
parenttarget-i386: Fix vm86 mode regression introduced in fd460606fd6f. (diff)
downloadqemu-b98dbc90950cd4e43ab9b4f8300dbeae6cf8c8cb.tar.gz
qemu-b98dbc90950cd4e43ab9b4f8300dbeae6cf8c8cb.tar.xz
qemu-b98dbc90950cd4e43ab9b4f8300dbeae6cf8c8cb.zip
target-i386: fix segment flags for SMM and VM86 mode
With the next patch, these need to be correct or VM86 tasks have the wrong CPL. The flags are basically what the Intel VMX documentation say is mandatory for entry into a VM86 guest. For consistency, SMM ought to have the same flags except with CPL=0. Tested-by: Kevin O'Connor <kevin@koconnor.net> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'bsd-user')
-rw-r--r--bsd-user/main.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/bsd-user/main.c b/bsd-user/main.c
index 4ba61da896..0e8c26c137 100644
--- a/bsd-user/main.c
+++ b/bsd-user/main.c
@@ -1004,7 +1004,7 @@ int main(int argc, char **argv)
#if defined(TARGET_I386)
env->cr[0] = CR0_PG_MASK | CR0_WP_MASK | CR0_PE_MASK;
- env->hflags |= HF_PE_MASK;
+ env->hflags |= HF_PE_MASK | HF_CPL_MASK;
if (env->features[FEAT_1_EDX] & CPUID_SSE) {
env->cr[4] |= CR4_OSFXSR_MASK;
env->hflags |= HF_OSFXSR_MASK;