From: Marcelo Tosatti Date: Wed, 13 Aug 2008 15:00:29 +0000 (+0300) Subject: KVM: task switch: translate guest segment limit to virt-extension byte granular field X-Git-Tag: v2.6.26.3~27 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7827feb473214191591b0c74653e1155b3625bb0;p=platform%2Fkernel%2Flinux-stable.git KVM: task switch: translate guest segment limit to virt-extension byte granular field (cherry picked from commit c93cd3a58845012df2d658fecd0ac99f7008d753) If 'g' is one then limit is 4kb granular. Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity Signed-off-by: Greg Kroah-Hartman --- diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 1be4512cc09a..8ab14ab105f0 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -3168,6 +3168,10 @@ static void seg_desct_to_kvm_desct(struct desc_struct *seg_desc, u16 selector, kvm_desct->base |= seg_desc->base2 << 24; kvm_desct->limit = seg_desc->limit0; kvm_desct->limit |= seg_desc->limit << 16; + if (seg_desc->g) { + kvm_desct->limit <<= 12; + kvm_desct->limit |= 0xfff; + } kvm_desct->selector = selector; kvm_desct->type = seg_desc->type; kvm_desct->present = seg_desc->p;