diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index 1facd0153399..f35e076ee47d 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c @@ -4755,8 +4755,7 @@ static int handle_reshape_read_error(struct mddev *mddev, int idx = 0; struct page **pages; - r10b = kmalloc(sizeof(*r10b) + - sizeof(struct r10dev) * conf->copies, GFP_NOIO); + r10b = kmalloc(struct_size(r10b, devs, conf->copies), GFP_NOIO); if (!r10b) { set_bit(MD_RECOVERY_INTR, &mddev->recovery); return -ENOMEM;