Skip to contentSkip to conversation

KVM: when entering real mode aling segment base to 16 bytes

PATCH Superseded Gleb Natapov 1 participant 1 message Dec 27, 2010

Subsystems (3)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 KVM: when entering real mode aling segment base to 16 bytes

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

arch/x86/kvm/vmx.c +1 -1
index 2260783..45014ba 100644
@@ -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.