On Wed, Oct 10, 2018 at 08:53:27PM +0800, Wei Yang wrote: > A non-NULL vma returned from find_vma() implies: > > vma->vm_start <= start > > Since len != 0, the following condition always hods: > > vma->vm_start < start + len = end > > This means the if check would never be true. This is true because earlier in the function, start + len is checked to be sure that it does not wrap. > This patch removes this redundant check and fix two typo in comment. > @@ -2705,12 +2705,8 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len, > - /* we have start < vma->vm_end */ > - > - /* if it doesn't overlap, we have nothing.. */ > + /* we have vma->vm_start <= start < vma->vm_end */ > end = start + len; > - if (vma->vm_start >= end) > - return 0; I agree that it's not currently a useful check, but it's also not going to have much effect on anything to delete it. I think there are probably more worthwhile places to look for inefficiencies.