diff options
-rw-r--r-- | linux-2.4-mremap-munmap.patch | 22 |
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; |