提交 d538c164 编写于 作者: W Wei Yang 提交者: Linus Torvalds

mm/sparse.c: check __highest_present_section_nr only for a present section

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.comSigned-off-by: NWei Yang <richard.weiyang@gmail.com>
Acked-by: NDavid Rientjes <rientjes@google.com>
Reviewed-by: NAndrew Morton <akpm@linux-foundation.org>
Cc: Dave Hansen <dave.hansen@intel.com>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 68827280
...@@ -190,15 +190,13 @@ static inline int next_present_section_nr(int section_nr) ...@@ -190,15 +190,13 @@ static inline int next_present_section_nr(int section_nr)
section_nr++; section_nr++;
if (present_section_nr(section_nr)) if (present_section_nr(section_nr))
return section_nr; return section_nr;
} while ((section_nr < NR_MEM_SECTIONS) && } while ((section_nr <= __highest_present_section_nr));
(section_nr <= __highest_present_section_nr));
return -1; return -1;
} }
#define for_each_present_section_nr(start, section_nr) \ #define for_each_present_section_nr(start, section_nr) \
for (section_nr = next_present_section_nr(start-1); \ for (section_nr = next_present_section_nr(start-1); \
((section_nr >= 0) && \ ((section_nr >= 0) && \
(section_nr < NR_MEM_SECTIONS) && \
(section_nr <= __highest_present_section_nr)); \ (section_nr <= __highest_present_section_nr)); \
section_nr = next_present_section_nr(section_nr)) section_nr = next_present_section_nr(section_nr))
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册