diff --git a/drivers/net/mlx4/icm.c b/drivers/net/mlx4/icm.c index 57288ca1395f..ef62f1749b8a 100644 --- a/drivers/net/mlx4/icm.c +++ b/drivers/net/mlx4/icm.c @@ -175,10 +175,11 @@ struct mlx4_icm *mlx4_alloc_icm(struct mlx4_dev *dev, int npages, if (chunk->nsg <= 0) goto fail; - - chunk = NULL; } + if (chunk->npages == MLX4_ICM_CHUNK_LEN) + chunk = NULL; + npages -= 1 << cur_order; } else { --cur_order;