Skip to content
  • Qian Cai's avatar
    mm/sparse: fix a bad comparison · 7b287c47
    Qian Cai authored
    [ Upstream commit d778015a ]
    
    next_present_section_nr() could only return an unsigned number -1, so
    just check it specifically where compilers will convert -1 to unsigned
    if needed.
    
      mm/sparse.c: In function 'sparse_init_nid':
      mm/sparse.c:200:20: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
             ((section_nr >= 0) &&    \
                          ^~
      mm/sparse.c:478:2: note: in expansion of macro
      'for_each_present_section_nr'
        for_each_present_section_nr(pnum_begin, pnum) {
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      mm/sparse.c:200:20: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
             ((section_nr >= 0) &&    \
                          ^~
      mm/sparse.c:497:2: note: in expansion of macro
      'for_each_present_section_nr'
        for_each_present_section_nr(pnum_begin, pnum) {
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      mm/sparse.c: In function 'sparse_init':
      mm/sparse.c:200:20: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
             ((section_nr >= 0) &&    \
                          ^~
      mm/sparse.c:520:2: note: in expansion of macro
      'for_each_present_section_nr'
        for_each_present_section_nr(pnum_begin + 1, pnum_end) {
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    Link: http://lkml.kernel.org/r/20190228181839.86504-1-cai@lca.pw
    Fixes: c4e1be9e
    
     ("mm, sparsemem: break out of loops early")
    Signed-off-by: default avatarQian Cai <cai@lca.pw>
    Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    7b287c47