mm/mmap: regression fix for unmapped_area{_topdown}
authorLiam R. Howlett <Liam.Howlett@oracle.com>
Fri, 14 Apr 2023 18:59:19 +0000 (14:59 -0400)
committerAndrew Morton <akpm@linux-foundation.org>
Tue, 18 Apr 2023 21:22:14 +0000 (14:22 -0700)
commit58c5d0d6d522112577c7eeb71d382ea642ed7be4
tree18e74dcce2826b651093634757906c6b9b55e6a1
parent06e8fd999334bcd76b4d72d7b9206d4aea89764e
mm/mmap: regression fix for unmapped_area{_topdown}

The maple tree limits the gap returned to a window that specifically fits
what was asked.  This may not be optimal in the case of switching search
directions or a gap that does not satisfy the requested space for other
reasons.  Fix the search by retrying the operation and limiting the search
window in the rare occasion that a conflict occurs.

Link: https://lkml.kernel.org/r/20230414185919.4175572-1-Liam.Howlett@oracle.com
Fixes: 3499a13168da ("mm/mmap: use maple tree for unmapped_area{_topdown}")
Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
Reported-by: Rick Edgecombe <rick.p.edgecombe@intel.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/mmap.c