Commit b3ffd74a authored by Gustavo A. R. Silva's avatar Gustavo A. R. Silva Committed by Paolo Bonzini
Browse files

KVM: irqchip: Use struct_size() in kzalloc()



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 = kzalloc(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 = kzalloc(struct_size(instance, entry, count), GFP_KERNEL);

This code was detected with the help of Coccinelle.

Signed-off-by: default avatarGustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 5a253552
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -196,9 +196,7 @@ int kvm_set_irq_routing(struct kvm *kvm,

	nr_rt_entries += 1;

	new = kzalloc(sizeof(*new) + (nr_rt_entries * sizeof(struct hlist_head)),
		      GFP_KERNEL_ACCOUNT);

	new = kzalloc(struct_size(new, map, nr_rt_entries), GFP_KERNEL_ACCOUNT);
	if (!new)
		return -ENOMEM;