mm/sparse.c: check __highest_present_section_nr only for a present section
authorWei Yang <richard.weiyang@gmail.com>
Fri, 8 Jun 2018 00:06:39 +0000 (17:06 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 8 Jun 2018 00:34:35 +0000 (17:34 -0700)
When searching a present section, there are two boundaries:

    * __highest_present_section_nr
    * NR_MEM_SECTIONS

And it is known, __highest_present_section_nr is a more strict boundary
than NR_MEM_SECTIONS.  This means it would be necessary to check
__highest_present_section_nr only.

Link: http://lkml.kernel.org/r/20180326081956.75275-2-richard.weiyang@gmail.com
Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
Acked-by: David Rientjes <rientjes@google.com>
Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Dave Hansen <dave.hansen@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/sparse.c

index 73dc2fcc0eab280f5c5f3620d126c18443b40b31..3570ff294ab1cc0a8848e82b41b0c282d4e52a77 100644 (file)
@@ -190,15 +190,13 @@ static inline int next_present_section_nr(int section_nr)
                section_nr++;
                if (present_section_nr(section_nr))
                        return section_nr;
-       } while ((section_nr < NR_MEM_SECTIONS) &&
-                (section_nr <= __highest_present_section_nr));
+       } while ((section_nr <= __highest_present_section_nr));
 
        return -1;
 }
 #define for_each_present_section_nr(start, section_nr)         \
        for (section_nr = next_present_section_nr(start-1);     \
             ((section_nr >= 0) &&                              \
-             (section_nr < NR_MEM_SECTIONS) &&                 \
              (section_nr <= __highest_present_section_nr));    \
             section_nr = next_present_section_nr(section_nr))