net/mlx5: Allocate virtually contiguous memory in pci_irq.c
authorTariq Toukan <tariqt@nvidia.com>
Tue, 27 Apr 2021 14:23:16 +0000 (17:23 +0300)
committerSaeed Mahameed <saeedm@nvidia.com>
Wed, 18 May 2022 06:41:45 +0000 (23:41 -0700)
Physical continuity is not necessary, and requested allocation size might
be larger than PAGE_SIZE.
Hence, use v-alloc/free API.

Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Reviewed-by: Moshe Shemesh <moshe@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c

index db77f1d..662f1d5 100644 (file)
@@ -94,8 +94,8 @@ int mlx5_set_msix_vec_count(struct mlx5_core_dev *dev, int function_id,
        if (msix_vec_count > max_msix)
                return -EOVERFLOW;
 
-       query_cap = kzalloc(query_sz, GFP_KERNEL);
-       hca_cap = kzalloc(set_sz, GFP_KERNEL);
+       query_cap = kvzalloc(query_sz, GFP_KERNEL);
+       hca_cap = kvzalloc(set_sz, GFP_KERNEL);
        if (!hca_cap || !query_cap) {
                ret = -ENOMEM;
                goto out;
@@ -118,8 +118,8 @@ int mlx5_set_msix_vec_count(struct mlx5_core_dev *dev, int function_id,
                 MLX5_SET_HCA_CAP_OP_MOD_GENERAL_DEVICE << 1);
        ret = mlx5_cmd_exec_in(dev, set_hca_cap, hca_cap);
 out:
-       kfree(hca_cap);
-       kfree(query_cap);
+       kvfree(hca_cap);
+       kvfree(query_cap);
        return ret;
 }