summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux-2.4-mremap-munmap.patch22
1 files changed, 10 insertions, 12 deletions
diff --git a/linux-2.4-mremap-munmap.patch b/linux-2.4-mremap-munmap.patch
index e0219e7..3ecd86d 100644
--- a/linux-2.4-mremap-munmap.patch
+++ b/linux-2.4-mremap-munmap.patch
@@ -1,27 +1,25 @@
-Changes for mm/mremap.c@1.8
-andrea@de[marcelo]
-Return proper do_munmap() error code
-
---- 1.7/mm/mremap.c Wed Feb 18 04:53:26 2004
-+++ 1.8/mm/mremap.c Wed Feb 18 04:53:26 2004
-@@ -258,16 +258,20 @@
+diff -Nur linux-2.4.22.before/mm/mremap.c linux-2.4.22/mm/mremap.c
+--- linux-2.4.22.before/mm/mremap.c 2004-02-19 12:01:33.000000000 +0100
++++ linux-2.4.22/mm/mremap.c 2004-02-19 12:55:09.000000000 +0100
+@@ -273,7 +273,9 @@
if ((addr <= new_addr) && (addr+old_len) > new_addr)
goto out;
-- do_munmap(current->mm, new_addr, new_len);
-+ ret = do_munmap(current->mm, new_addr, new_len);
+- do_munmap(current->mm, new_addr, new_len, 1);
++ ret = do_munmap(current->mm, new_addr, new_len, 1);
+ if (ret && new_len)
+ goto out;
}
/*
- * Always allow a shrinking remap: that just unmaps
+@@ -281,9 +283,11 @@
* the unnecessary pages..
+ * do_munmap does all the needed commit accounting
*/
- ret = addr;
if (old_len >= new_len) {
-- do_munmap(current->mm, addr+new_len, old_len - new_len);
-+ ret = do_munmap(current->mm, addr+new_len, old_len - new_len);
+- do_munmap(current->mm, addr+new_len, old_len - new_len, 1);
++ ret = do_munmap(current->mm, addr+new_len, old_len - new_len, 1);
+ if (ret && old_len != new_len)
+ goto out;
+ ret = addr;