md: raid10: 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(size, 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> Signed-off-by: Song Liu <songliubraving@fb.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Родитель
ebfeb444fa
Коммит
8cf05a7841
|
@ -4755,8 +4755,7 @@ static int handle_reshape_read_error(struct mddev *mddev,
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
struct page **pages;
|
struct page **pages;
|
||||||
|
|
||||||
r10b = kmalloc(sizeof(*r10b) +
|
r10b = kmalloc(struct_size(r10b, devs, conf->copies), GFP_NOIO);
|
||||||
sizeof(struct r10dev) * conf->copies, GFP_NOIO);
|
|
||||||
if (!r10b) {
|
if (!r10b) {
|
||||||
set_bit(MD_RECOVERY_INTR, &mddev->recovery);
|
set_bit(MD_RECOVERY_INTR, &mddev->recovery);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче