KVM: VMX: Fix host userspace gsbase corruption
authorAvi Kivity <avi@redhat.com>
Thu, 11 Nov 2010 10:37:26 +0000 (12:37 +0200)
committerMarcelo Tosatti <mtosatti@redhat.com>
Wed, 17 Nov 2010 21:48:05 +0000 (19:48 -0200)
commitc8770e7ba63bb5dd8fe5f9d251275a8fa717fb78
treed10aad025730cf4138ee9cc1fc6c22d7984aaab7
parent0a77fe4c188e25917799f2356d4aa5e6d80c39a2
KVM: VMX: Fix host userspace gsbase corruption

We now use load_gs_index() to load gs safely; unfortunately this also
changes MSR_KERNEL_GS_BASE, which we managed separately.  This resulted
in confusion and breakage running 32-bit host userspace on a 64-bit kernel.

Fix by
- saving guest MSR_KERNEL_GS_BASE before we we reload the host's gs
- doing the host save/load unconditionally, instead of only when in guest
  long mode

Things can be cleaned up further, but this is the minmal fix for now.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
arch/x86/kvm/vmx.c