From: Matthew Wilcox <mawilcox@xxxxxxxxxxxxx> We all know the perils of multiplying a value provided from userspace by a constant and then allocating the resulting number of bytes. That's why we have kvmalloc_array(), so we don't have to think about it. This solves the same problem when we embed one of these arrays in a struct like this: struct { int n; unsigned long array[]; }; Using kvzalloc_struct() to allocate this will save precious thinking time and reduce the possibilities of bugs. v2: Minor fixes pointed out by Kees Added sample conversions I added a few more sample conversions for demonstration purposes, and one thing I noticed is that the kvmalloc family of functions live in <linux/mm.h> which (contrary to popular belief) is not already automatically included everywhere. Should they be moved to slab.h to be with kmalloc, a new file (malloc.h? kvmalloc.h?), or even kernel.h? Matthew Wilcox (8): mm: Add kernel-doc for kvfree mm: Add kvmalloc_ab_c and kvzalloc_struct Convert virtio_console to kvzalloc_struct Convert dax device to kvzalloc_struct Convert infiniband uverbs to kvzalloc_struct Convert v4l2 event to kvzalloc_struct Convert vhost to kvzalloc_struct Convert jffs2 acl to kvzalloc_struct drivers/char/virtio_console.c | 3 +-- drivers/dax/device.c | 2 +- drivers/infiniband/core/uverbs_cmd.c | 4 +-- drivers/media/v4l2-core/v4l2-event.c | 3 +-- drivers/vhost/vhost.c | 2 +- fs/jffs2/acl.c | 3 ++- fs/jffs2/acl.h | 1 + include/linux/mm.h | 51 ++++++++++++++++++++++++++++++++++++ include/rdma/ib_verbs.h | 5 +--- mm/util.c | 10 +++++++ 10 files changed, 71 insertions(+), 13 deletions(-) -- 2.15.1 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>