Static analysis reported unsigned compare against 0 issue according to Colin Ian King.
Defined an int temp variable to check the return value of __do_munmap(). Reported-by: Colin Ian King <[email protected]> Cc: Vlastimil Babka <[email protected]> Cc: Kirill A. Shutemov <[email protected]> Cc: Michal Hocko <[email protected]> Cc: Matthew Wilcox <[email protected]> Cc: Laurent Dufour <[email protected]> Cc: Andrew Morton <[email protected]> Signed-off-by: Yang Shi <[email protected]> --- Andrew, this should be able to be folded into the original patch. mm/mmap.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 68dc4fb..c78f7e9 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -242,17 +242,18 @@ static int do_brk_flags(unsigned long addr, unsigned long request, unsigned long * __do_munmap() may downgrade mmap_sem to read. */ if (brk <= mm->brk) { + int ret; /* * mm->brk need to be protected by write mmap_sem, update it * before downgrading mmap_sem. * When __do_munmap fail, it will be restored from origbrk. */ mm->brk = brk; - retval = __do_munmap(mm, newbrk, oldbrk-newbrk, &uf, true); - if (retval < 0) { + ret = __do_munmap(mm, newbrk, oldbrk-newbrk, &uf, true); + if (ret < 0) { mm->brk = origbrk; goto out; - } else if (retval == 1) + } else if (ret == 1) downgraded = true; goto success; } -- 1.8.3.1

