qxl: 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; void *entry[]; }; instance = kzalloc(sizeof(struct foo) + sizeof(void *) * count, 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: Gustavo A. R. Silva <gustavo@embeddedor.com> Link: http://patchwork.freedesktop.org/patch/msgid/20190108162152.GA25361@embeddedor Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
d516e75c71
commit
d4b9dd5007
|
@ -48,8 +48,8 @@ static int qxl_alloc_client_monitors_config(struct qxl_device *qdev,
|
||||||
}
|
}
|
||||||
if (!qdev->client_monitors_config) {
|
if (!qdev->client_monitors_config) {
|
||||||
qdev->client_monitors_config = kzalloc(
|
qdev->client_monitors_config = kzalloc(
|
||||||
sizeof(struct qxl_monitors_config) +
|
struct_size(qdev->client_monitors_config,
|
||||||
sizeof(struct qxl_head) * count, GFP_KERNEL);
|
heads, count), GFP_KERNEL);
|
||||||
if (!qdev->client_monitors_config)
|
if (!qdev->client_monitors_config)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue