Input: tca6416-keypad - 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> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
parent
4116941b7a
commit
fb5fc09cc8
@ -219,9 +219,7 @@ static int tca6416_keypad_probe(struct i2c_client *client,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
chip = kzalloc(sizeof(struct tca6416_keypad_chip) +
|
||||
pdata->nbuttons * sizeof(struct tca6416_button),
|
||||
GFP_KERNEL);
|
||||
chip = kzalloc(struct_size(chip, buttons, pdata->nbuttons), GFP_KERNEL);
|
||||
input = input_allocate_device();
|
||||
if (!chip || !input) {
|
||||
error = -ENOMEM;
|
||||
|
Loading…
Reference in New Issue
Block a user