diff -urNp 2.4.20pre9/mm/vmalloc.c x/mm/vmalloc.c --- 2.4.20pre9/mm/vmalloc.c Fri Oct 4 04:13:51 2002 +++ x/mm/vmalloc.c Sun Oct 6 23:02:08 2002 @@ -176,9 +176,13 @@ struct vm_struct * get_vm_area(unsigned area = (struct vm_struct *) kmalloc(sizeof(*area), GFP_KERNEL); if (!area) return NULL; + size += PAGE_SIZE; - if(!size) + if (!size) { + kfree (area); return NULL; + } + addr = VMALLOC_START; write_lock(&vmlist_lock); for (p = &vmlist; (tmp = *p) ; p = &tmp->next) {