mm/mempolicy.c: remove BUG_ON() checks for VMA inside mpol_misplaced()
authorAnshuman Khandual <khandual@linux.vnet.ibm.com>
Fri, 8 Sep 2017 23:13:32 +0000 (16:13 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 9 Sep 2017 01:26:47 +0000 (18:26 -0700)
VMA and its address bounds checks are too late in this function.  They
must have been verified earlier in the page fault sequence.  Hence just
remove them.

Link: http://lkml.kernel.org/r/20170901130137.7617-1-khandual@linux.vnet.ibm.com
Signed-off-by: Anshuman Khandual <khandual@linux.vnet.ibm.com>
Suggested-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/mempolicy.c

index 1f5db48adc9cd74bb7bb3676bc1017a221ce78da..006ba625c0b8d4edb6b3ed2b20ce307c254b42be 100644 (file)
@@ -2233,17 +2233,12 @@ int mpol_misplaced(struct page *page, struct vm_area_struct *vma, unsigned long
        int polnid = -1;
        int ret = -1;
 
-       BUG_ON(!vma);
-
        pol = get_vma_policy(vma, addr);
        if (!(pol->flags & MPOL_F_MOF))
                goto out;
 
        switch (pol->mode) {
        case MPOL_INTERLEAVE:
-               BUG_ON(addr >= vma->vm_end);
-               BUG_ON(addr < vma->vm_start);
-
                pgoff = vma->vm_pgoff;
                pgoff += (addr - vma->vm_start) >> PAGE_SHIFT;
                polnid = offset_il_node(pol, pgoff);