Paolo Bonzini <pbonzini@xxxxxxxxxx> writes: > On 22/06/2016 18:10, Bandan Das wrote: >>>> >> + if (!shadow_xonly_valid) >>>> >> + spte = PT_PRESENT_MASK; >>>> >> if (!speculative) >>>> >> spte |= shadow_accessed_mask; >>>> >> >>>> >> @@ -2537,8 +2538,12 @@ static int set_spte(struct kvm_vcpu *vcpu, u64 *sptep, >>>> >> else >>>> >> spte |= shadow_nx_mask; >>>> >> >>>> >> - if (pte_access & ACC_USER_MASK) >>>> >> - spte |= shadow_user_mask; >>>> >> + if (pte_access & ACC_USER_MASK) { >>>> >> + if (shadow_xonly_valid) >>>> >> + spte |= PT_PRESENT_MASK; >>>> >> + else >>>> >> + spte |= shadow_user_mask; >>>> >> + } >>> > >>> > Can you instead pass VMX_READABLE_MASK to kvm_mmu_set_mask_ptes in vmx.c? >> So, leave spte = PT_PRESENT_MASK as is and make VMX_READABLE_MASK 1ULL if >> execute only is supported ? >> And then : >> if !(pte_access & ACC_USER_MASK) { >> spte &= ~VMX_READABLE_MASK >> > > No, I meant something like > > spte = 0; > if (!shadow_xonly_valid) > spte = PT_PRESENT_MASK; > ... > if (pte_access & ACC_USER_MASK) > spte |= shadow_user_mask; Ok, Xiao mentioned this too. I will fix it in the next version. Thanks for the review. > Paolo > -- > To unsubscribe from this list: send the line "unsubscribe kvm" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html