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 <colin.king@xxxxxxxxxxxxx> Cc: Vlastimil Babka <vbabka@xxxxxxx> Cc: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> Cc: Michal Hocko <mhocko@xxxxxxxxxx> Cc: Matthew Wilcox <willy@xxxxxxxxxxxxx> Cc: Laurent Dufour <ldufour@xxxxxxxxxxxxxxxxxx> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Yang Shi <yang.shi@xxxxxxxxxxxxxxxxx> --- 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