mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-03-07 12:12:07 +00:00
net/mlx5: Tolerate irq_set_affinity_hint() failures
Add tolerance to failures of irq_set_affinity_hint(). Its role is to give hints that optimizes performance, and should not block the driver load. In non-SMP systems, functionality is not available as there is a single core, and all these calls definitely fail. Hence, do not call the function and avoid the warning prints. Fixes: db058a186f98 ("net/mlx5_core: Set irq affinity hints") Signed-off-by: Tariq Toukan <tariqt@mellanox.com> Cc: kernel-team@fb.com Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
This commit is contained in:
parent
73dd3a4839
commit
b665d98edc
@ -612,7 +612,6 @@ static int mlx5_irq_set_affinity_hint(struct mlx5_core_dev *mdev, int i)
|
|||||||
struct mlx5_priv *priv = &mdev->priv;
|
struct mlx5_priv *priv = &mdev->priv;
|
||||||
struct msix_entry *msix = priv->msix_arr;
|
struct msix_entry *msix = priv->msix_arr;
|
||||||
int irq = msix[i + MLX5_EQ_VEC_COMP_BASE].vector;
|
int irq = msix[i + MLX5_EQ_VEC_COMP_BASE].vector;
|
||||||
int err;
|
|
||||||
|
|
||||||
if (!zalloc_cpumask_var(&priv->irq_info[i].mask, GFP_KERNEL)) {
|
if (!zalloc_cpumask_var(&priv->irq_info[i].mask, GFP_KERNEL)) {
|
||||||
mlx5_core_warn(mdev, "zalloc_cpumask_var failed");
|
mlx5_core_warn(mdev, "zalloc_cpumask_var failed");
|
||||||
@ -622,18 +621,12 @@ static int mlx5_irq_set_affinity_hint(struct mlx5_core_dev *mdev, int i)
|
|||||||
cpumask_set_cpu(cpumask_local_spread(i, priv->numa_node),
|
cpumask_set_cpu(cpumask_local_spread(i, priv->numa_node),
|
||||||
priv->irq_info[i].mask);
|
priv->irq_info[i].mask);
|
||||||
|
|
||||||
err = irq_set_affinity_hint(irq, priv->irq_info[i].mask);
|
#ifdef CONFIG_SMP
|
||||||
if (err) {
|
if (irq_set_affinity_hint(irq, priv->irq_info[i].mask))
|
||||||
mlx5_core_warn(mdev, "irq_set_affinity_hint failed,irq 0x%.4x",
|
mlx5_core_warn(mdev, "irq_set_affinity_hint failed, irq 0x%.4x", irq);
|
||||||
irq);
|
#endif
|
||||||
goto err_clear_mask;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
err_clear_mask:
|
|
||||||
free_cpumask_var(priv->irq_info[i].mask);
|
|
||||||
return err;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mlx5_irq_clear_affinity_hint(struct mlx5_core_dev *mdev, int i)
|
static void mlx5_irq_clear_affinity_hint(struct mlx5_core_dev *mdev, int i)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user