{
        struct vcpu_vmx *vmx = to_vmx(vcpu);
        const struct kvm_vmx_segment_field *sf = &kvm_vmx_segment_fields[seg];
-       u32 ar = 0;
 
        vmx_segment_cache_clear(vmx);
        __clear_bit(VCPU_EXREG_CPL, (ulong *)&vcpu->arch.regs_avail);
        vmcs_writel(sf->base, var->base);
        vmcs_write32(sf->limit, var->limit);
        vmcs_write16(sf->selector, var->selector);
-       ar = vmx_segment_access_rights(var);
 
        /*
         *   Fix the "Accessed" bit in AR field of segment registers for older
         * kvm hack.
         */
        if (enable_unrestricted_guest && (seg != VCPU_SREG_LDTR))
-               ar |= 0x1; /* Accessed */
+               var->type |= 0x1; /* Accessed */
 
-       vmcs_write32(sf->ar_bytes, ar);
+       vmcs_write32(sf->ar_bytes, vmx_segment_access_rights(var));
 }
 
 static void vmx_get_cs_db_l_bits(struct kvm_vcpu *vcpu, int *db, int *l)