From 9b30de5d63f0166e3b77bee7ad5c62d3fc4aaaca Mon Sep 17 00:00:00 2001 From: Nithin Dabilpuram Date: Wed, 11 Dec 2019 15:50:57 +0000 Subject: [PATCH] net/qede: use ack in interrupt handlers This is a partial pick of below commit from master. At this point only qede is updated as it addresses an observed issue. commit 6bee9d5f456a61a427384c815f6827aad83e3c06 Author: Nithin Dabilpuram Date: Tue Jul 23 10:04:19 2019 +0200 drivers/net: use ack in interrupt handlers Replace rte_intr_enable() with rte_intr_ack() API for acking an interrupt in interrupt handlers and rx_queue_intr_enable() callbacks of PMD's. This is inline with original intent of this change in PMDs to ack interrupts after handling is completed if device is backed by UIO, IGB_UIO or VFIO(with INTx). Signed-off-by: Nithin Dabilpuram Signed-off-by: Jerin Jacob Acked-by: Shahed Shaikh Tested-by: Shahed Shaikh Signed-off-by: David Marchand Signed-off-by: Kevin Traynor --- drivers/net/qede/Makefile | 1 + drivers/net/qede/meson.build | 2 ++ drivers/net/qede/qede_ethdev.c | 8 ++++---- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/net/qede/Makefile b/drivers/net/qede/Makefile index 2ecbd8d20d..a11d5946a1 100644 --- a/drivers/net/qede/Makefile +++ b/drivers/net/qede/Makefile @@ -12,6 +12,7 @@ LIB = librte_pmd_qede.a CFLAGS += -O3 CFLAGS += $(WERROR_FLAGS) +CFLAGS += -DALLOW_EXPERIMENTAL_API LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs LDLIBS += -lrte_bus_pci diff --git a/drivers/net/qede/meson.build b/drivers/net/qede/meson.build index 12388a680e..1755719f0a 100644 --- a/drivers/net/qede/meson.build +++ b/drivers/net/qede/meson.build @@ -1,6 +1,8 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2018 Luca Boccassi +allow_experimental_apis = true + subdir('base') objs = [base_objs] diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c index 8dced18998..c8291839c5 100644 --- a/drivers/net/qede/qede_ethdev.c +++ b/drivers/net/qede/qede_ethdev.c @@ -248,8 +248,8 @@ qede_interrupt_handler_intx(void *param) if (status & 0x1) { qede_interrupt_action(ECORE_LEADING_HWFN(edev)); - if (rte_intr_enable(eth_dev->intr_handle)) - DP_ERR(edev, "rte_intr_enable failed\n"); + if (rte_intr_ack(eth_dev->intr_handle)) + DP_ERR(edev, "rte_intr_ack failed\n"); } } @@ -261,8 +261,8 @@ qede_interrupt_handler(void *param) struct ecore_dev *edev = &qdev->edev; qede_interrupt_action(ECORE_LEADING_HWFN(edev)); - if (rte_intr_enable(eth_dev->intr_handle)) - DP_ERR(edev, "rte_intr_enable failed\n"); + if (rte_intr_ack(eth_dev->intr_handle)) + DP_ERR(edev, "rte_intr_ack failed\n"); } static void