nommu patch against 2.6.12-rc3-mm3, for mm/nommu.c :
- need to fix the vmalloc definition.
- most malloc functions in nommu does not provide the 'len'. should consider
"zero" len value.
If it does return with error when the 'len' is zero, the whole exist
applications are unable to run, because of the std-c libraries for uClinux.
Signed-off-by : Hyok S. Choi <[email protected]>
Index: linux-2.6.12-rc3-mm3/mm/nommu.c
================================================================
--- linux-2.6.12-rc3-mm3/mm/nommu.c 2005-05-06 09:58:44.000000000 +0900
+++ linux-2.6.12-rc3-mm3-hsc0/mm/nommu.c 2005-05-06
13:53:54.000000000 +0900
@@ -6,6 +6,7 @@
*
* See Documentation/nommu-mmap.txt
*
+ * Copyright (c) 2005 Hyok S. Choi <[email protected]>
* Copyright (c) 2004-2005 David Howells <[email protected]>
* Copyright (c) 2000-2003 David McCullough <[email protected]>
* Copyright (c) 2000-2001 D Jeff Dionne <[email protected]>
@@ -146,7 +147,7 @@
kfree(addr);
}
-void *__vmalloc(unsigned long size, int gfp_mask, pgprot_t prot)
+void *__vmalloc(unsigned long size, unsigned int gfp_mask, pgprot_t prot)
{
/*
* kmalloc doesn't like __GFP_HIGHMEM for some reason
@@ -901,10 +902,12 @@
#ifdef DEBUG
printk("do_munmap:\n");
#endif
-
+ /* if the len is zero(as some simple-malloc libs does),
+ * treat it with the start addr only.
+ */
for (parent = &mm->context.vmlist; *parent; parent =
&(*parent)->next)
if ((*parent)->vma->vm_start == addr &&
- (*parent)->vma->vm_end == end)
+ (!len || (*parent)->vma->vm_end == end))
goto found;
printk("munmap of non-mmaped memory by process %d (%s): %p\n",
@@ -914,6 +917,9 @@
found:
vml = *parent;
+ if(!len)
+ len = vml->vma->vm_end - addr;
+
put_vma(vml->vma);
*parent = vml->next;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]