]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 16 Jul 2023 15:08:16 +0000 (17:08 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 16 Jul 2023 15:08:16 +0000 (17:08 +0200)
added patches:
mm-mmap-fix-extra-maple-tree-write.patch

queue-5.4/mm-mmap-fix-extra-maple-tree-write.patch [new file with mode: 0644]
queue-5.4/series

diff --git a/queue-5.4/mm-mmap-fix-extra-maple-tree-write.patch b/queue-5.4/mm-mmap-fix-extra-maple-tree-write.patch
new file mode 100644 (file)
index 0000000..447be2c
--- /dev/null
@@ -0,0 +1,50 @@
+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
+
index 38ab0be551d7f18c7a00b86d91e981e576db8143..56c0471bdcef48245a84ba285b6ddd02250b5fad 100644 (file)
@@ -178,3 +178,4 @@ btrfs-fix-race-when-deleting-quota-root-from-the-dirty-cow-roots-list.patch
 asoc-mediatek-mt8173-fix-irq-error-path.patch
 arm-orion5x-fix-d2net-gpio-initialization.patch
 fs-no-need-to-check-source.patch
+mm-mmap-fix-extra-maple-tree-write.patch