diff options
author | Avi Kivity <avi@redhat.com> | 2010-04-08 18:19:35 +0300 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2010-04-20 12:59:31 +0300 |
commit | 78ac8b47c566dd6177a3b9b291b756ccb70670b7 (patch) | |
tree | 46feb3a7845c7e4a3d0c621d17b3f2593e7d756f /fs | |
parent | 114be429c8cd44e57f312af2bbd6734e5a185b0d (diff) | |
download | op-kernel-dev-78ac8b47c566dd6177a3b9b291b756ccb70670b7.zip op-kernel-dev-78ac8b47c566dd6177a3b9b291b756ccb70670b7.tar.gz |
KVM: VMX: Save/restore rflags.vm correctly in real mode
Currently we set eflags.vm unconditionally when entering real mode emulation
through virtual-8086 mode, and clear it unconditionally when we enter protected
mode. The means that the following sequence
KVM_SET_REGS (rflags.vm=1)
KVM_SET_SREGS (cr0.pe=1)
Ends up with rflags.vm clear due to KVM_SET_SREGS triggering enter_pmode().
Fix by shadowing rflags.vm (and rflags.iopl) correctly while in real mode:
reads and writes to those bits access a shadow register instead of the actual
register.
Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'fs')
0 files changed, 0 insertions, 0 deletions