On Thu, Jan 07, 2016 at 04:59:23PM +0800, Wang Xiaoqiang wrote: > Hi, all, > > since the code: > > length = info->length + info->align_mask > > and all variables above are "unsigned long" type, > so there must be "length >= info->length". I think that if info->align_mask is "very large" as an unsigned long value and the sum of these 2 overflows, length can become smaller than info->length, so we seem to need the check. But why returning -ENOMEM? Isn't it worth VM_BUG_ON()? Thanks, Naoya Horiguchi > > Signed-off-by: Wang Xiaoqiang <wangxq10@xxxxxxxxxx> > --- > mm/mmap.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/mm/mmap.c b/mm/mmap.c > index 2ce04a6..99fc461 100644 > --- a/mm/mmap.c > +++ b/mm/mmap.c > @@ -1716,8 +1716,6 @@ unsigned long unmapped_area(struct vm_unmapped_area_info *info) > > /* Adjust search length to account for worst case alignment overhead */ > length = info->length + info->align_mask; > - if (length < info->length) > - return -ENOMEM; > > /* Adjust search limits by the desired length */ > if (info->high_limit < length) > -- > 2.1.4 > > thanks, > Wang Xiaoqiang > > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href