Hi Oleg, On 03/14/2018 10:29 PM, Oleg Nesterov wrote: > On 03/13, Ravi Bangoria wrote: >> +static bool sdt_valid_vma(struct trace_uprobe *tu, struct vm_area_struct *vma) >> +{ >> + unsigned long vaddr = vma_offset_to_vaddr(vma, tu->ref_ctr_offset); >> + >> + return tu->ref_ctr_offset && >> + vma->vm_file && >> + file_inode(vma->vm_file) == tu->inode && >> + vma->vm_flags & VM_WRITE && >> + vma->vm_start <= vaddr && >> + vma->vm_end > vaddr; >> +} > Perhaps in this case a simple > > ref_ctr_offset < vma->vm_end - vma->vm_start > > check without vma_offset_to_vaddr() makes more sense, but I won't insist. > I still don't get this. This seems a comparison between file offset and size of the vma. Shouldn't we need to consider pg_off here? Thanks, Ravi