diff options
| author | 2009-03-11 10:49:34 +0100 | |
|---|---|---|
| committer | 2009-03-11 10:49:34 +0100 | |
| commit | d95c3578120e5bc4784069439f00ccb1b5f87717 (patch) | |
| tree | c819de31de3983f3d69f223ede07667ff23bf7da /mm/util.c | |
| parent | fix warning in arch/x86/kernel/cpu/intel_cacheinfo.c (diff) | |
| parent | Merge branches 'x86/cleanups', 'x86/kexec', 'x86/mce2' and 'linus' into x86/core (diff) | |
| download | wireguard-linux-d95c3578120e5bc4784069439f00ccb1b5f87717.tar.xz wireguard-linux-d95c3578120e5bc4784069439f00ccb1b5f87717.zip | |
Merge branch 'x86/core' into cpus4096
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 |
