summaryrefslogtreecommitdiffstats
path: root/mm/util.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2009-02-24 03:49:55 -0800
committerDavid S. Miller <davem@davemloft.net>2009-02-24 03:49:55 -0800
commit467388f29fc9cebfb70e7a187107b6b5d772cb44 (patch)
tree4e6fffa65f38addffc149a5fe88be3d2161eaf6e /mm/util.c
parent028e1415a78733fcd2cba4b4c001826cc37a373e (diff)
parentf7e603ad8f78cd3b59e33fa72707da0cbabdf699 (diff)
downloadkernel-crypto-467388f29fc9cebfb70e7a187107b6b5d772cb44.tar.gz
kernel-crypto-467388f29fc9cebfb70e7a187107b6b5d772cb44.tar.xz
kernel-crypto-467388f29fc9cebfb70e7a187107b6b5d772cb44.zip
Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
Diffstat (limited to 'mm/util.c')
-rw-r--r--mm/util.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/mm/util.c b/mm/util.c
index cb00b748ce4..37eaccdf305 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