Commit b330e6a49dc3 ("md: convert to kvmalloc") uses kvmalloc_array() to allocate memory with GFP_NOIO flag in resize_chunks() via function scribble_alloc(), 2269 err = scribble_alloc(percpu, new_disks, 2270 new_sectors / STRIPE_SECTORS, 2271 GFP_NOIO); Indeed kvmalloc() inside kvmalloc_array() does not accept non GFP_KERNEL compatible flags, it means GFP_NOIO will make kvmalloc_node() call kmalloc_node() instead, which is not the above listed code wants. For md raid1 and raid10 code, such allocation just simply calls kmalloc_array(), which is enough and works fine. This patch removes the misleading kvmalloc_array() and simply uses kmalloc_array() as md raid1 and raid10 code do. Fixes: b330e6a49dc3 ("md: convert to kvmalloc") Signed-off-by: Coly Li <colyli@xxxxxxx> Cc: Kent Overstreet <kent.overstreet@xxxxxxxxx> Cc: Michal Hocko <mhocko@xxxxxxxx> --- drivers/md/raid5.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index ba00e9877f02..dda2701290bf 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -2235,7 +2235,7 @@ static int scribble_alloc(struct raid5_percpu *percpu, sizeof(addr_conv_t) * (num+2); void *scribble; - scribble = kvmalloc_array(cnt, obj_size, flags); + scribble = kmalloc_array(cnt, obj_size, flags); if (!scribble) return -ENOMEM; -- 2.25.0