KVM: x86: SYSCALL cannot clear eflags[1]
authorNadav Amit <namit@cs.technion.ac.il>
Sun, 2 Nov 2014 09:54:49 +0000 (11:54 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 7 Nov 2014 14:44:05 +0000 (15:44 +0100)
commit807c142595abcb99285746bd5512447bdf40b9b1
tree224e59cef2e14c9bca43a49be2695076a62eebbb
parentb5bbf10ee6b65b70c10c139822bc2dc077cefa76
KVM: x86: SYSCALL cannot clear eflags[1]

SYSCALL emulation currently clears in 64-bit mode eflags according to
MSR_SYSCALL_MASK.  However, on bare-metal eflags[1] which is fixed to one
cannot be cleared, even if MSR_SYSCALL_MASK masks the bit.  This wrong behavior
may result in failed VM-entry, as VT disallows entry with eflags[1] cleared.

This patch sets the bit after masking eflags on syscall.

Signed-off-by: Nadav Amit <namit@cs.technion.ac.il>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/emulate.c