+++ /dev/null
-From Liam.Howlett@oracle.com Sun Jul 16 17:02:51 2023
-From: "Liam R. Howlett" <Liam.Howlett@oracle.com>
-Date: Thu, 6 Jul 2023 14:51:35 -0400
-Subject: mm/mmap: Fix extra maple tree write
-To: linux-kernel@vger.kernel.org
-Cc: Andrew Morton <akpm@linux-foundation.org>, "Liam R. Howlett" <Liam.Howlett@oracle.com>, John Hsu <John.Hsu@mediatek.com>, stable@vger.kernel.org, linux-mm@kvack.org
-Message-ID: <20230706185135.2235532-1-Liam.Howlett@oracle.com>
-
-From: "Liam R. Howlett" <Liam.Howlett@oracle.com>
-
-based on commit 0503ea8f5ba73eb3ab13a81c1eefbaf51405385a upstream.
-
-This was inadvertently fixed during the removal of __vma_adjust().
-
-When __vma_adjust() is adjusting next with a negative value (pushing
-vma->vm_end lower), there would be two writes to the maple tree. The
-first write is unnecessary and uses all allocated nodes in the maple
-state. The second write is necessary but will need to allocate nodes
-since the first write has used the allocated nodes. This may be a
-problem as it may not be safe to allocate at this time, such as a low
-memory situation. Fix the issue by avoiding the first write and only
-write the adjusted "next" VMA.
-
-Reported-by: John Hsu <John.Hsu@mediatek.com>
-Link: https://lore.kernel.org/lkml/9cb8c599b1d7f9c1c300d1a334d5eb70ec4d7357.camel@mediatek.com/
-Cc: stable@vger.kernel.org
-Cc: linux-mm@kvack.org
-Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- mm/mmap.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/mm/mmap.c b/mm/mmap.c
-index b8af52db3bbe..bb2e0ff0ef61 100644
---- a/mm/mmap.c
-+++ b/mm/mmap.c
-@@ -767,7 +767,8 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start,
- }
- if (end != vma->vm_end) {
- if (vma->vm_end > end) {
-- if (!insert || (insert->vm_start != end)) {
-+ if ((vma->vm_end + adjust_next != end) &&
-+ (!insert || (insert->vm_start != end))) {
- vma_mas_szero(&mas, end, vma->vm_end);
- mas_reset(&mas);
- VM_WARN_ON(insert &&
---
-2.39.2
-