[PATCH v2 0/8] Add kvzalloc_struct to complement kvzalloc_array
From: Matthew WilcoxWe 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 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
[PATCH v2 0/8] Add kvzalloc_struct to complement kvzalloc_array
From: Matthew Wilcox 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 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