]> asedeno.scripts.mit.edu Git - linux.git/commit
svcrdma: Use struct_size() in kmalloc()
authorGustavo A. R. Silva <gustavo@embeddedor.com>
Tue, 15 Jan 2019 21:11:40 +0000 (15:11 -0600)
committerJ. Bruce Fields <bfields@redhat.com>
Wed, 6 Feb 2019 20:37:14 +0000 (15:37 -0500)
commit14cfbd94998a3ad6aaa67da46d997eea9e31897e
tree335a194ee2834f10b09668d52ebaaa4ce97d751f
parent95503d295ad6af20f09efff193e085481a962fd2
svcrdma: Use struct_size() in kmalloc()

One of the more common cases of allocation size calculations is finding
the size of a structure that has a zero-sized array at the end, along
with memory for some number of elements for that array. For example:

struct foo {
    int stuff;
    struct boo entry[];
};

instance = kmalloc(sizeof(struct foo) + count * sizeof(struct boo), GFP_KERNEL);

Instead of leaving these open-coded and prone to type mistakes, we can
now use the new struct_size() helper:

instance = kmalloc(struct_size(instance, entry, count), GFP_KERNEL);

This code was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Reviewed-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
net/sunrpc/xprtrdma/svc_rdma_rw.c