|
|
@@ -640,18 +640,19 @@ u64 mlx5_read_internal_timer(struct mlx5_core_dev *dev)
|
|
|
static int mlx5_irq_set_affinity_hint(struct mlx5_core_dev *mdev, int i)
|
|
|
{
|
|
|
struct mlx5_priv *priv = &mdev->priv;
|
|
|
- int irq = pci_irq_vector(mdev->pdev, MLX5_EQ_VEC_COMP_BASE + i);
|
|
|
+ int vecidx = MLX5_EQ_VEC_COMP_BASE + i;
|
|
|
+ int irq = pci_irq_vector(mdev->pdev, vecidx);
|
|
|
|
|
|
- if (!zalloc_cpumask_var(&priv->irq_info[i].mask, GFP_KERNEL)) {
|
|
|
+ if (!zalloc_cpumask_var(&priv->irq_info[vecidx].mask, GFP_KERNEL)) {
|
|
|
mlx5_core_warn(mdev, "zalloc_cpumask_var failed");
|
|
|
return -ENOMEM;
|
|
|
}
|
|
|
|
|
|
cpumask_set_cpu(cpumask_local_spread(i, priv->numa_node),
|
|
|
- priv->irq_info[i].mask);
|
|
|
+ priv->irq_info[vecidx].mask);
|
|
|
|
|
|
if (IS_ENABLED(CONFIG_SMP) &&
|
|
|
- irq_set_affinity_hint(irq, priv->irq_info[i].mask))
|
|
|
+ irq_set_affinity_hint(irq, priv->irq_info[vecidx].mask))
|
|
|
mlx5_core_warn(mdev, "irq_set_affinity_hint failed, irq 0x%.4x", irq);
|
|
|
|
|
|
return 0;
|
|
|
@@ -659,11 +660,12 @@ static int mlx5_irq_set_affinity_hint(struct mlx5_core_dev *mdev, int i)
|
|
|
|
|
|
static void mlx5_irq_clear_affinity_hint(struct mlx5_core_dev *mdev, int i)
|
|
|
{
|
|
|
+ int vecidx = MLX5_EQ_VEC_COMP_BASE + i;
|
|
|
struct mlx5_priv *priv = &mdev->priv;
|
|
|
- int irq = pci_irq_vector(mdev->pdev, MLX5_EQ_VEC_COMP_BASE + i);
|
|
|
+ int irq = pci_irq_vector(mdev->pdev, vecidx);
|
|
|
|
|
|
irq_set_affinity_hint(irq, NULL);
|
|
|
- free_cpumask_var(priv->irq_info[i].mask);
|
|
|
+ free_cpumask_var(priv->irq_info[vecidx].mask);
|
|
|
}
|
|
|
|
|
|
static int mlx5_irq_set_affinity_hints(struct mlx5_core_dev *mdev)
|