[PATCH RESEND] KVM: when entering real mode align segment base to 16 bytes

Gleb Natapov
2010-12-27T13:01:11Z

VMX checks that base is equal segment shifted 4 bites left. Otherwise
guest entry fails.

Signed-off-by: Gleb Natapov <gleb@redhat.com>
--
Same as previous one but with correct (I hope) To: header.

diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 2260783..45014ba 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -1736,7 +1736,7 @@ static void fix_rmode_seg(int seg, struct kvm_save_segment *save)
save->limit = vmcs_read32(sf->limit);
save->ar = vmcs_read32(sf->ar_bytes);
vmcs_write16(sf->selector, save->base >> 4);
- vmcs_write32(sf->base, save->base & 0xfffff);
+ vmcs_write32(sf->base, save->base & 0xffff0);
vmcs_write32(sf->limit, 0xffff);
vmcs_write32(sf->ar_bytes, 0xf3);
}
--
Gleb.