From: Pekka Enberg This patch clarifies NULL handling of kfree() and vfree(). I addition, wording of calling context restriction for vfree() and vunmap() are changed from "may not" to "must not." Signed-off-by: Pekka Enberg Acked-by: Manfred Spraul Signed-off-by: Andrew Morton --- mm/slab.c | 2 ++ mm/vmalloc.c | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff -puN mm/slab.c~update-kfree-vfree-and-vunmap-kerneldoc mm/slab.c --- devel/mm/slab.c~update-kfree-vfree-and-vunmap-kerneldoc 2005-08-21 23:49:50.000000000 -0700 +++ devel-akpm/mm/slab.c 2005-08-21 23:49:50.000000000 -0700 @@ -3006,6 +3006,8 @@ EXPORT_SYMBOL(kzalloc); * kfree - free previously allocated memory * @objp: pointer returned by kmalloc. * + * If @objp is NULL, no operation is performed. + * * Don't free memory not originally allocated by kmalloc() * or you will run into trouble. */ diff -puN mm/vmalloc.c~update-kfree-vfree-and-vunmap-kerneldoc mm/vmalloc.c --- devel/mm/vmalloc.c~update-kfree-vfree-and-vunmap-kerneldoc 2005-08-21 23:49:50.000000000 -0700 +++ devel-akpm/mm/vmalloc.c 2005-08-21 23:49:50.000000000 -0700 @@ -334,9 +334,10 @@ void __vunmap(void *addr, int deallocate * @addr: memory base address * * Free the virtually contiguous memory area starting at @addr, as - * obtained from vmalloc(), vmalloc_32() or __vmalloc(). + * obtained from vmalloc(), vmalloc_32() or __vmalloc(). If @addr is + * NULL, no operation is performed. * - * May not be called in interrupt context. + * Must not be called in interrupt context. */ void vfree(void *addr) { @@ -354,7 +355,7 @@ EXPORT_SYMBOL(vfree); * Free the virtually contiguous memory area starting at @addr, * which was created from the page array passed to vmap(). * - * May not be called in interrupt context. + * Must not be called in interrupt context. */ void vunmap(void *addr) { _