Messages in this thread Patch in this message | | | Date | Tue, 14 Dec 1999 12:35:34 -0500 (EST) | From | "Benjamin C.R. LaHaise" <> | Subject | [fix] Re: 2.3.31 (and 2.3.32pre2) breaks cpp with segmentation fault (ok in 2.3.30), reproducable (mremap problem???) |
| |
On Tue, 14 Dec 1999, Thorsten Kranzkowski wrote:
> And for me it's not limited to gcc. 'top', 'iptraf', even 'ls' also segfaulted > without any sane reason. :)
Here's the fix that works for a couple of other people who have triggered the problem. I was being too clever, and it seems that in some cases even though the new parameter is not touched, its presence is corrupting *something*. If someone has an explanation, I'd be interested in hearing it.
-ben
diff -ur clean/2.3.32/mm/mremap.c 2.3.32/mm/mremap.c --- clean/2.3.32/mm/mremap.c Wed Dec 8 22:14:20 1999 +++ 2.3.32/mm/mremap.c Tue Dec 14 10:31:46 1999 @@ -166,7 +166,7 @@ * MREMAP_FIXED option added 5-Dec-1999 by Benjamin LaHaise * This option implies MREMAP_MAYMOVE. */ -asmlinkage unsigned long sys_mremap(unsigned long addr, +unsigned long do_sys_mremap(unsigned long addr, unsigned long old_len, unsigned long new_len, unsigned long flags, unsigned long new_addr) { @@ -286,3 +286,20 @@ up(¤t->mm->mmap_sem); return ret; } + +asmlinkage unsigned long sys_mremap(unsigned long addr, + unsigned long old_len, unsigned long new_len, + unsigned long flags) +{ + if (flags & ~MREMAP_MAYMOVE) + printk("sys_mremap: passed invalid flags: %08lx\n", flags); + return do_sys_mremap(addr, old_len, new_len, flags, 0); +} + +asmlinkage unsigned long do_sys_mremap2(unsigned long addr, + unsigned long old_len, unsigned long new_len, + unsigned long flags, unsigned long new_addr) +{ + return do_sys_mremap(addr, old_len, new_len, flags, new_addr); +} +
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |