diff options
author | Felix Blyakher <felixb@sgi.com> | 2009-03-03 09:18:47 -0600 |
---|---|---|
committer | Felix Blyakher <felixb@sgi.com> | 2009-03-03 09:18:47 -0600 |
commit | d4fc7cea5dda04ae1a6f36175ec1dd8ff088ed52 (patch) | |
tree | 3d65887b06c575a94feed1fd91216e32a62b31d8 /mm/util.c | |
parent | 3a011a171906a3a51a43bb860fb7c66a64cab140 (diff) | |
parent | 2450cf51a1bdba7037e91b1bcc494b01c58aaf66 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'mm/util.c')
-rw-r--r-- | mm/util.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/mm/util.c b/mm/util.c index cb00b748ce47..37eaccdf3054 100644 --- a/mm/util.c +++ b/mm/util.c @@ -129,6 +129,26 @@ void *krealloc(const void *p, size_t new_size, gfp_t flags) } EXPORT_SYMBOL(krealloc); +/** + * kzfree - like kfree but zero memory + * @p: object to free memory of + * + * The memory of the object @p points to is zeroed before freed. + * If @p is %NULL, kzfree() does nothing. + */ +void kzfree(const void *p) +{ + size_t ks; + void *mem = (void *)p; + + if (unlikely(ZERO_OR_NULL_PTR(mem))) + return; + ks = ksize(mem); + memset(mem, 0, ks); + kfree(mem); +} +EXPORT_SYMBOL(kzfree); + /* * strndup_user - duplicate an existing string from user space * @s: The string to duplicate |