Messages in this thread Patch in this message | | | Subject | [PATCH] UML - free wrapper fixes | Date | Wed, 22 Sep 2004 22:20:43 -0400 | From | Jeff Dike <> |
| |
__wrap_free is now careful about freeing to the same allocator that allocated the buffer.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it> Signed-off-by: Jeff Dike <jdike@addtoit.com>
Index: linux-2.6.9-rc2-mm1-orig/arch/um/kernel/main.c =================================================================== --- linux-2.6.9-rc2-mm1-orig.orig/arch/um/kernel/main.c 2004-09-22 19:51:02.000000000 -0400 +++ linux-2.6.9-rc2-mm1-orig/arch/um/kernel/main.c 2004-09-22 20:07:02.000000000 -0400 @@ -220,14 +220,19 @@ * If kmalloc is not yet possible, then the kernel memory regions * may not be set up yet, and the variables not initialized. So, * free is called. + * + * CAN_KMALLOC is checked because it would be bad to free a buffer + * with kmalloc/vmalloc after they have been turned off during + * shutdown. */ - if(CAN_KMALLOC()){ - if((addr >= uml_physmem) && (addr <= high_physmem)) + + if((addr >= uml_physmem) && (addr < high_physmem)){ + if(CAN_KMALLOC()) kfree(ptr); - else if((addr >= start_vm) && (addr <= end_vm)) + } + else if((addr >= start_vm) && (addr < end_vm)){ + if(CAN_KMALLOC()) vfree(ptr); - else - __real_free(ptr); } else __real_free(ptr); } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |