From 95ff46500990226f5ec5edfff3ae61999bbc382a Mon Sep 17 00:00:00 2001 From: Spike Du Date: Tue, 5 Jul 2022 16:44:51 +0300 Subject: [PATCH] vdpa/mlx5: use common interrupt management Replace vDPA interrupt handle creation logic with mlx5-common interrupt management function. Signed-off-by: Spike Du --- drivers/vdpa/mlx5/mlx5_vdpa_virtq.c | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/drivers/vdpa/mlx5/mlx5_vdpa_virtq.c b/drivers/vdpa/mlx5/mlx5_vdpa_virtq.c index ed17fb5add..607e290995 100644 --- a/drivers/vdpa/mlx5/mlx5_vdpa_virtq.c +++ b/drivers/vdpa/mlx5/mlx5_vdpa_virtq.c @@ -492,30 +492,13 @@ static int mlx5_vdpa_virtq_doorbell_setup(struct mlx5_vdpa_virtq *virtq, struct rte_vhost_vring *vq, int index) { - virtq->intr_handle = - rte_intr_instance_alloc(RTE_INTR_INSTANCE_F_SHARED); + virtq->intr_handle = mlx5_os_interrupt_handler_create( + RTE_INTR_INSTANCE_F_SHARED, false, + vq->kickfd, mlx5_vdpa_virtq_kick_handler, virtq); if (virtq->intr_handle == NULL) { - DRV_LOG(ERR, "Fail to allocate intr_handle"); + DRV_LOG(ERR, "Fail to allocate intr_handle for virtq %d.", index); return -1; } - if (rte_intr_fd_set(virtq->intr_handle, vq->kickfd)) - return -1; - if (rte_intr_fd_get(virtq->intr_handle) == -1) { - DRV_LOG(WARNING, "Virtq %d kickfd is invalid.", index); - } else { - if (rte_intr_type_set(virtq->intr_handle, - RTE_INTR_HANDLE_EXT)) - return -1; - if (rte_intr_callback_register(virtq->intr_handle, - mlx5_vdpa_virtq_kick_handler, virtq)) { - (void)rte_intr_fd_set(virtq->intr_handle, -1); - DRV_LOG(ERR, "Failed to register virtq %d interrupt.", - index); - return -1; - } - DRV_LOG(DEBUG, "Register fd %d interrupt for virtq %d.", - rte_intr_fd_get(virtq->intr_handle), index); - } return 0; } -- 2.39.5