When searching a present section, there are two boundaries: * __highest_present_section_nr * NR_MEM_SECTIONS And it is konwn, __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. Signed-off-by: Wei Yang <richard.weiyang@xxxxxxxxx> --- mm/sparse.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mm/sparse.c b/mm/sparse.c index 505050346249..b6560029a16c 100644 --- a/mm/sparse.c +++ b/mm/sparse.c @@ -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)) -- 2.15.1