KVM: Prevent system selectors leaking into guest on real->protected mode transition...
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / kvm / vmx.c
index bfa0ce42ea92b35518345244b26604cc3855bd6d..25b24719922446d755fefc8177d53effa71fc128 100644 (file)
@@ -618,7 +618,7 @@ static void fix_pmode_dataseg(int seg, struct kvm_save_segment *save)
 {
        struct kvm_vmx_segment_field *sf = &kvm_vmx_segment_fields[seg];
 
-       if (vmcs_readl(sf->base) == save->base) {
+       if (vmcs_readl(sf->base) == save->base && (save->base & AR_S_MASK)) {
                vmcs_write16(sf->selector, save->selector);
                vmcs_writel(sf->base, save->base);
                vmcs_write32(sf->limit, save->limit);