Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 61d0e73e authored by Achiad Shochat's avatar Achiad Shochat Committed by David S. Miller
Browse files

net/mlx5_core: Use the the real irqn in eq->irqn



Instead of storing the msix array index in eq->irqn (vecidx),
store the real irq number.

Signed-off-by: default avatarAchiad Shochat <achiad@mellanox.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 01c196a2
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -382,10 +382,10 @@ int mlx5_create_map_eq(struct mlx5_core_dev *dev, struct mlx5_eq *eq, u8 vecidx,
		 name, pci_name(dev->pdev));

	eq->eqn = out.eq_number;
	eq->irqn = vecidx;
	eq->irqn = priv->msix_arr[vecidx].vector;
	eq->dev = dev;
	eq->doorbell = uar->map + MLX5_EQ_DOORBEL_OFFSET;
	err = request_irq(priv->msix_arr[vecidx].vector, mlx5_msix_handler, 0,
	err = request_irq(eq->irqn, mlx5_msix_handler, 0,
			  priv->irq_info[vecidx].name, eq);
	if (err)
		goto err_eq;
@@ -421,12 +421,12 @@ int mlx5_destroy_unmap_eq(struct mlx5_core_dev *dev, struct mlx5_eq *eq)
	int err;

	mlx5_debug_eq_remove(dev, eq);
	free_irq(dev->priv.msix_arr[eq->irqn].vector, eq);
	free_irq(eq->irqn, eq);
	err = mlx5_cmd_destroy_eq(dev, eq->eqn);
	if (err)
		mlx5_core_warn(dev, "failed to destroy a previously created eq: eqn %d\n",
			       eq->eqn);
	synchronize_irq(dev->priv.msix_arr[eq->irqn].vector);
	synchronize_irq(eq->irqn);
	mlx5_buf_free(dev, &eq->buf);

	return err;