mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 10:09:10 +02:00
net/mlx5: Switch vport HCA cap helpers to kvzalloc
mlx5_vport_set_other_func_cap() and mlx5_vport_get_vhca_id() allocate command buffers that embed the HCA capability union, exceeding 4KiB. Use kvzalloc/kvfree so the allocation can fall back to vmalloc when contiguous memory is scarce. Signed-off-by: Moshe Shemesh <moshe@nvidia.com> Signed-off-by: Tariq Toukan <tariqt@nvidia.com> Link: https://patch.msgid.link/20260518071356.345723-5-tariqt@nvidia.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
3fefa7e7c1
commit
62af408fd7
|
|
@ -1336,7 +1336,7 @@ int mlx5_vport_get_vhca_id(struct mlx5_core_dev *dev, u16 vport, u16 *vhca_id)
|
|||
if (mlx5_esw_vport_vhca_id(dev->priv.eswitch, vport, vhca_id))
|
||||
return 0;
|
||||
|
||||
query_ctx = kzalloc(query_out_sz, GFP_KERNEL);
|
||||
query_ctx = kvzalloc(query_out_sz, GFP_KERNEL);
|
||||
if (!query_ctx)
|
||||
return -ENOMEM;
|
||||
|
||||
|
|
@ -1348,7 +1348,7 @@ int mlx5_vport_get_vhca_id(struct mlx5_core_dev *dev, u16 vport, u16 *vhca_id)
|
|||
*vhca_id = MLX5_GET(cmd_hca_cap, hca_caps, vhca_id);
|
||||
|
||||
out_free:
|
||||
kfree(query_ctx);
|
||||
kvfree(query_ctx);
|
||||
return err;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mlx5_vport_get_vhca_id);
|
||||
|
|
@ -1363,7 +1363,7 @@ int mlx5_vport_set_other_func_cap(struct mlx5_core_dev *dev, const void *hca_cap
|
|||
void *set_ctx;
|
||||
int ret;
|
||||
|
||||
set_ctx = kzalloc(set_sz, GFP_KERNEL);
|
||||
set_ctx = kvzalloc(set_sz, GFP_KERNEL);
|
||||
if (!set_ctx)
|
||||
return -ENOMEM;
|
||||
|
||||
|
|
@ -1392,6 +1392,6 @@ int mlx5_vport_set_other_func_cap(struct mlx5_core_dev *dev, const void *hca_cap
|
|||
MLX5_SET(set_hca_cap_in, set_ctx, function_id, function_id);
|
||||
ret = mlx5_cmd_exec_in(dev, set_hca_cap, set_ctx);
|
||||
|
||||
kfree(set_ctx);
|
||||
kvfree(set_ctx);
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user