diff for duplicates of <20170705191007.GA26635@dhcp22.suse.cz>
diff --git a/a/1.txt b/N1/1.txt
index 2b32252..2e45261 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -19,67 +19,4 @@ On Wed 05-07-17 20:53:02, Michal Hocko wrote:
> mine which is not a stable material.
Here is the rebase of Oleg's patch.
----
->From 61ff0cd972dac218390a5859b89ce386db731d1d Mon Sep 17 00:00:00 2001
-From: Oleg Nesterov <oleg@redhat.com>
-Date: Fri, 30 Jun 2017 10:19:00 +0200
-Subject: [PATCH] mm/mmap.c: expand_downwards: don't require the gap if
- !vm_prev
-
-expand_stack(vma) fails if address < stack_guard_gap even if there is no
-vma->vm_prev. I don't think this makes sense, and we didn't do this
-before the recent commit 1be7107fbe18 ("mm: larger stack guard gap,
-between vmas"). We do not need a gap in this case, any address is fine as
-long as security_mmap_addr() doesn't object.
-
-This also simplifies the code, we know that address >= prev->vm_end and
-thus underflow is not possible.
-
-Link: http://lkml.kernel.org/r/20170628175258.GA24881@redhat.com
-Signed-off-by: Oleg Nesterov <oleg@redhat.com>
-Cc: Hugh Dickins <hughd@google.com>
-Cc: Larry Woodman <lwoodman@redhat.com>
-Cc: Linus Torvalds <torvalds@linux-foundation.org>
-Acked-by: Michal Hocko <mhocko@suse.com>
-Signed-off-by: Michal Hocko <mhocko@suse.com>
----
- mm/mmap.c | 10 +++-------
- 1 file changed, 3 insertions(+), 7 deletions(-)
-
-diff --git a/mm/mmap.c b/mm/mmap.c
-index ece0f6d3a1b5..f30847405cab 100644
---- a/mm/mmap.c
-+++ b/mm/mmap.c
-@@ -2316,7 +2316,6 @@ int expand_downwards(struct vm_area_struct *vma,
- {
- struct mm_struct *mm = vma->vm_mm;
- struct vm_area_struct *prev;
-- unsigned long gap_addr;
- int error;
-
- address &= PAGE_MASK;
-@@ -2325,15 +2324,12 @@ int expand_downwards(struct vm_area_struct *vma,
- return error;
-
- /* Enforce stack_guard_gap */
-- gap_addr = address - stack_guard_gap;
-- if (gap_addr > address)
-- return -ENOMEM;
- prev = vma->vm_prev;
-- if (prev && prev->vm_end > gap_addr &&
-+ /* Check that both stack segments have the same anon_vma? */
-+ if (prev && !(prev->vm_flags & VM_GROWSDOWN) &&
- (prev->vm_flags & (VM_WRITE|VM_READ|VM_EXEC))) {
-- if (!(prev->vm_flags & VM_GROWSDOWN))
-+ if (address - prev->vm_end < stack_guard_gap)
- return -ENOMEM;
-- /* Check that both stack segments have the same anon_vma? */
- }
-
- /* We must make sure the anon_vma is allocated. */
---
-2.11.0
-
---
-Michal Hocko
-SUSE Labs
\ No newline at end of file
+---
\ No newline at end of file
diff --git a/a/content_digest b/N1/content_digest
index f8b688f..4bcfc2b 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -63,70 +63,7 @@
"> mine which is not a stable material.\n",
"\n",
"Here is the rebase of Oleg's patch.\n",
- "---\n",
- ">From 61ff0cd972dac218390a5859b89ce386db731d1d Mon Sep 17 00:00:00 2001\n",
- "From: Oleg Nesterov <oleg\@redhat.com>\n",
- "Date: Fri, 30 Jun 2017 10:19:00 +0200\n",
- "Subject: [PATCH] mm/mmap.c: expand_downwards: don't require the gap if\n",
- " !vm_prev\n",
- "\n",
- "expand_stack(vma) fails if address < stack_guard_gap even if there is no\n",
- "vma->vm_prev. I don't think this makes sense, and we didn't do this\n",
- "before the recent commit 1be7107fbe18 (\"mm: larger stack guard gap,\n",
- "between vmas\"). We do not need a gap in this case, any address is fine as\n",
- "long as security_mmap_addr() doesn't object.\n",
- "\n",
- "This also simplifies the code, we know that address >= prev->vm_end and\n",
- "thus underflow is not possible.\n",
- "\n",
- "Link: http://lkml.kernel.org/r/20170628175258.GA24881\@redhat.com\n",
- "Signed-off-by: Oleg Nesterov <oleg\@redhat.com>\n",
- "Cc: Hugh Dickins <hughd\@google.com>\n",
- "Cc: Larry Woodman <lwoodman\@redhat.com>\n",
- "Cc: Linus Torvalds <torvalds\@linux-foundation.org>\n",
- "Acked-by: Michal Hocko <mhocko\@suse.com>\n",
- "Signed-off-by: Michal Hocko <mhocko\@suse.com>\n",
- "---\n",
- " mm/mmap.c | 10 +++-------\n",
- " 1 file changed, 3 insertions(+), 7 deletions(-)\n",
- "\n",
- "diff --git a/mm/mmap.c b/mm/mmap.c\n",
- "index ece0f6d3a1b5..f30847405cab 100644\n",
- "--- a/mm/mmap.c\n",
- "+++ b/mm/mmap.c\n",
- "\@\@ -2316,7 +2316,6 \@\@ int expand_downwards(struct vm_area_struct *vma,\n",
- " {\n",
- " \tstruct mm_struct *mm = vma->vm_mm;\n",
- " \tstruct vm_area_struct *prev;\n",
- "-\tunsigned long gap_addr;\n",
- " \tint error;\n",
- " \n",
- " \taddress &= PAGE_MASK;\n",
- "\@\@ -2325,15 +2324,12 \@\@ int expand_downwards(struct vm_area_struct *vma,\n",
- " \t\treturn error;\n",
- " \n",
- " \t/* Enforce stack_guard_gap */\n",
- "-\tgap_addr = address - stack_guard_gap;\n",
- "-\tif (gap_addr > address)\n",
- "-\t\treturn -ENOMEM;\n",
- " \tprev = vma->vm_prev;\n",
- "-\tif (prev && prev->vm_end > gap_addr &&\n",
- "+\t/* Check that both stack segments have the same anon_vma? */\n",
- "+\tif (prev && !(prev->vm_flags & VM_GROWSDOWN) &&\n",
- " \t\t\t(prev->vm_flags & (VM_WRITE|VM_READ|VM_EXEC))) {\n",
- "-\t\tif (!(prev->vm_flags & VM_GROWSDOWN))\n",
- "+\t\tif (address - prev->vm_end < stack_guard_gap)\n",
- " \t\t\treturn -ENOMEM;\n",
- "-\t\t/* Check that both stack segments have the same anon_vma? */\n",
- " \t}\n",
- " \n",
- " \t/* We must make sure the anon_vma is allocated. */\n",
- "-- \n",
- "2.11.0\n",
- "\n",
- "-- \n",
- "Michal Hocko\n",
- "SUSE Labs"
+ "---"
]
-6c3a4f4e59c45a13563a4cb965f60497d4d404087b35810bbb6108cbb5589d2a
+00a1eaf4198f77a7824ccf6dba0bafca03f5581a1ce0b9b810e3c5227ebb75f6
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.