diff --git a/drivers/net/mlx4/icm.c b/drivers/net/mlx4/icm.c index 04b382fcb8c8..83eef8e35b76 100644 --- a/drivers/net/mlx4/icm.c +++ b/drivers/net/mlx4/icm.c @@ -174,10 +174,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;