diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2014-05-15 16:07:04 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2014-05-21 18:02:08 +0200 |
commit | b98dbc90950cd4e43ab9b4f8300dbeae6cf8c8cb (patch) | |
tree | 5ccd530f79ccd636d971e6e0336e090ad0afdfa6 /linux-user | |
parent | 87446327ccb2e944fe7abc848bab798a0864eb03 (diff) | |
download | qemu-b98dbc90950cd4e43ab9b4f8300dbeae6cf8c8cb.zip qemu-b98dbc90950cd4e43ab9b4f8300dbeae6cf8c8cb.tar.gz qemu-b98dbc90950cd4e43ab9b4f8300dbeae6cf8c8cb.tar.bz2 |
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 'linux-user')
-rw-r--r-- | linux-user/main.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/linux-user/main.c b/linux-user/main.c index 882186e..3e21024 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -4052,7 +4052,7 @@ int main(int argc, char **argv, char **envp) #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; |