get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/56611/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 56611,
    "url": "https://patches.dpdk.org/api/patches/56611/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20190717115852.171416-4-ndabilpuram@marvell.com/",
    "project": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20190717115852.171416-4-ndabilpuram@marvell.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20190717115852.171416-4-ndabilpuram@marvell.com",
    "date": "2019-07-17T11:58:52",
    "name": "[3/3] drivers/net: use ack API in interrupt handlers",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "33c1c6e76833b3d5c308de0bf04bf589cbe7ea04",
    "submitter": {
        "id": 1202,
        "url": "https://patches.dpdk.org/api/people/1202/?format=api",
        "name": "Nithin Dabilpuram",
        "email": "ndabilpuram@marvell.com"
    },
    "delegate": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20190717115852.171416-4-ndabilpuram@marvell.com/mbox/",
    "series": [
        {
            "id": 5560,
            "url": "https://patches.dpdk.org/api/series/5560/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=5560",
            "date": "2019-07-17T11:58:49",
            "name": "vfio: fix broken msix interrupt initialization",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/5560/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/56611/comments/",
    "check": "fail",
    "checks": "https://patches.dpdk.org/api/patches/56611/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 1A6C21B94F;\n\tWed, 17 Jul 2019 14:00:29 +0200 (CEST)",
            "from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com\n\t[67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 7AE3B4CE4\n\tfor <dev@dpdk.org>; Wed, 17 Jul 2019 14:00:27 +0200 (CEST)",
            "from pps.filterd (m0045851.ppops.net [127.0.0.1])\n\tby mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id\n\tx6HC0Crn006647; Wed, 17 Jul 2019 05:00:21 -0700",
            "from sc-exch03.marvell.com ([199.233.58.183])\n\tby mx0b-0016f401.pphosted.com with ESMTP id 2ts0a27e9m-1\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); \n\tWed, 17 Jul 2019 05:00:21 -0700",
            "from SC-EXCH03.marvell.com (10.93.176.83) by SC-EXCH03.marvell.com\n\t(10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3;\n\tWed, 17 Jul 2019 05:00:16 -0700",
            "from maili.marvell.com (10.93.176.43) by SC-EXCH03.marvell.com\n\t(10.93.176.83) with Microsoft SMTP Server id 15.0.1367.3 via Frontend\n\tTransport; Wed, 17 Jul 2019 05:00:16 -0700",
            "from hyd1588t430.marvell.com (unknown [10.29.52.204])\n\tby maili.marvell.com (Postfix) with ESMTP id C4DBC3F704A;\n\tWed, 17 Jul 2019 05:00:07 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com;\n\th=from : to : cc :\n\tsubject : date : message-id : in-reply-to : references : mime-version\n\t: content-type; s=pfpt0818;\n\tbh=QGTtJFQUFHYwi5CkFTdV6iSaeRY5keJ+yGEAWCqrOy8=; \n\tb=rHHppVB3cE3QlPivZ4aUf7assBrSR6i7dWBgQpfnhTB9xGc/fC8tDLUvxCyIa55fb3wk\n\tWE858faOYClB7Wdjnedfw+L4uu3Tt0gBF5TlqKdfXUCDJVMueyPHKrTRYaelbWMm/Vs1\n\tCvzmHQMWjJhaDJWm2co/VswW63K/1epWd0WvUV3eigU0xw48nPQZtT04pGsaHix+XQwG\n\tC+CIaDa7p8njhrOAsyC79705pv3VI8K64mL2fYiuIIfUoG5oQaPp8pl5Sp/TFritiOZy\n\toddk1rEkQrhs1EmTTvD6QVF4/8rK6UQpo/WAkilJjTeaNnCKDsMqD2i6qQ53f+FW3k8+\n\tWQ== ",
        "From": "Nithin Dabilpuram <ndabilpuram@marvell.com>",
        "To": "Hyong Youb Kim <hyonkim@cisco.com>, David Marchand\n\t<david.marchand@redhat.com>, Thomas Monjalon <thomas@monjalon.net>,\n\t\"Ferruh Yigit\" <ferruh.yigit@intel.com>,\n\tIgor Russkikh <igor.russkikh@aquantia.com>,\n\tPavel Belous <pavel.belous@aquantia.com>, Allain Legacy\n\t<allain.legacy@windriver.com>, Matt Peters <matt.peters@windriver.com>,\n\t\"Ravi Kumar\" <ravi1.kumar@amd.com>, Rasesh Mody <rmody@marvell.com>, \n\tShahed Shaikh <shshaikh@marvell.com>,\n\tWenzhuo Lu <wenzhuo.lu@intel.com>, Qi Zhang <qi.z.zhang@intel.com>,\n\tXiao Wang <xiao.w.wang@intel.com>, Beilei Xing <beilei.xing@intel.com>,\n\tJingjing Wu <jingjing.wu@intel.com>,\n\tQiming Yang <qiming.yang@intel.com>, \n\tKonstantin Ananyev <konstantin.ananyev@intel.com>,\n\tAlejandro Lucero <alejandro.lucero@netronome.com>, Andrew Rybchenko\n\t<arybchenko@solarflare.com>,\n\tMaxime Coquelin <maxime.coquelin@redhat.com>, \n\tTiwei Bie <tiwei.bie@intel.com>, Zhihong Wang <zhihong.wang@intel.com>,\n\t\"Yong Wang\" <yongwang@vmware.com>",
        "CC": "<jerinj@marvell.com>, John Daley <johndale@cisco.com>, <dev@dpdk.org>,\n\tNithin Dabilpuram <ndabilpuram@marvell.com>",
        "Date": "Wed, 17 Jul 2019 17:28:52 +0530",
        "Message-ID": "<20190717115852.171416-4-ndabilpuram@marvell.com>",
        "X-Mailer": "git-send-email 2.8.4",
        "In-Reply-To": "<20190717115852.171416-1-ndabilpuram@marvell.com>",
        "References": "<20190717115852.171416-1-ndabilpuram@marvell.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Proofpoint-Virus-Version": "vendor=fsecure engine=2.50.10434:5.22.84,1.0.8\n\tdefinitions=2019-07-17_04:2019-07-17,2019-07-17 signatures=0",
        "Subject": "[dpdk-dev] [PATCH 3/3] drivers/net: use ack API in interrupt\n\thandlers",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Replace rte_intr_enable() with rte_intr_ack() API\nfor acking an interrupt in interrupt handlers and\nrx_queue_intr_enable() callbacks of PMD's.\n\nThis is inline with original intent of this change in PMDs\nto ack interrupts after handling is completed if\ndevice is backed by UIO, IGB_UIO or VFIO(with INTx).\n\nSigned-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>\nSigned-off-by: Jerin Jacob <jerinj@marvell.com>\n---\n drivers/net/atlantic/Makefile        |  1 +\n drivers/net/atlantic/atl_ethdev.c    |  2 +-\n drivers/net/atlantic/meson.build     |  2 ++\n drivers/net/avp/avp_ethdev.c         |  2 +-\n drivers/net/avp/meson.build          |  1 +\n drivers/net/axgbe/Makefile           |  1 +\n drivers/net/axgbe/axgbe_ethdev.c     |  4 ++--\n drivers/net/axgbe/meson.build        |  1 +\n drivers/net/bnx2x/bnx2x_ethdev.c     |  2 +-\n drivers/net/bnx2x/meson.build        |  1 +\n drivers/net/e1000/em_ethdev.c        |  4 ++--\n drivers/net/e1000/igb_ethdev.c       |  6 +++---\n drivers/net/fm10k/fm10k_ethdev.c     |  6 +++---\n drivers/net/fm10k/meson.build        |  1 +\n drivers/net/i40e/i40e_ethdev.c       |  2 +-\n drivers/net/iavf/iavf_ethdev.c       |  2 +-\n drivers/net/ice/Makefile             |  1 +\n drivers/net/ice/ice_ethdev.c         |  4 ++--\n drivers/net/ice/meson.build          |  1 +\n drivers/net/ixgbe/ixgbe_ethdev.c     |  6 +++---\n drivers/net/nfp/nfp_net.c            |  2 +-\n drivers/net/qede/Makefile            |  1 +\n drivers/net/qede/meson.build         |  2 ++\n drivers/net/qede/qede_ethdev.c       |  8 ++++----\n drivers/net/sfc/sfc_intr.c           |  4 ++--\n drivers/net/virtio/virtio_ethdev.c   | 16 +++++++++++++++-\n drivers/net/vmxnet3/vmxnet3_ethdev.c |  2 +-\n 27 files changed, 56 insertions(+), 29 deletions(-)",
    "diff": "diff --git a/drivers/net/atlantic/Makefile b/drivers/net/atlantic/Makefile\nindex 263f12b..fc12e6a 100644\n--- a/drivers/net/atlantic/Makefile\n+++ b/drivers/net/atlantic/Makefile\n@@ -10,6 +10,7 @@ LIB = librte_pmd_atlantic.a\n \n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS)\n+CFLAGS += -DALLOW_EXPERIMENTAL_API\n \n EXPORT_MAP := rte_pmd_atlantic_version.map\n \ndiff --git a/drivers/net/atlantic/atl_ethdev.c b/drivers/net/atlantic/atl_ethdev.c\nindex fdc0a7f..79001da 100644\n--- a/drivers/net/atlantic/atl_ethdev.c\n+++ b/drivers/net/atlantic/atl_ethdev.c\n@@ -1394,7 +1394,7 @@ atl_dev_interrupt_action(struct rte_eth_dev *dev,\n \t}\n done:\n \tatl_enable_intr(dev);\n-\trte_intr_enable(intr_handle);\n+\trte_intr_ack(intr_handle);\n \n \treturn 0;\n }\ndiff --git a/drivers/net/atlantic/meson.build b/drivers/net/atlantic/meson.build\nindex 60b8468..d5602dd 100644\n--- a/drivers/net/atlantic/meson.build\n+++ b/drivers/net/atlantic/meson.build\n@@ -11,3 +11,5 @@ sources = files(\n \t'hw_atl/hw_atl_utils.c',\n \t'rte_pmd_atlantic.c',\n )\n+\n+cflags += '-DALLOW_EXPERIMENTAL_API'\ndiff --git a/drivers/net/avp/avp_ethdev.c b/drivers/net/avp/avp_ethdev.c\nindex 47b96ec..504435e 100644\n--- a/drivers/net/avp/avp_ethdev.c\n+++ b/drivers/net/avp/avp_ethdev.c\n@@ -713,7 +713,7 @@ avp_dev_interrupt_handler(void *data)\n \t\t\t    status);\n \n \t/* re-enable UIO interrupt handling */\n-\tret = rte_intr_enable(&pci_dev->intr_handle);\n+\tret = rte_intr_ack(&pci_dev->intr_handle);\n \tif (ret < 0) {\n \t\tPMD_DRV_LOG(ERR, \"Failed to re-enable UIO interrupts, ret=%d\\n\",\n \t\t\t    ret);\ndiff --git a/drivers/net/avp/meson.build b/drivers/net/avp/meson.build\nindex a5f63cd..7fb9706 100644\n--- a/drivers/net/avp/meson.build\n+++ b/drivers/net/avp/meson.build\n@@ -7,3 +7,4 @@ if not is_linux\n endif\n sources = files('avp_ethdev.c')\n install_headers('rte_avp_common.h', 'rte_avp_fifo.h')\n+cflags += '-DALLOW_EXPERIMENTAL_API'\ndiff --git a/drivers/net/axgbe/Makefile b/drivers/net/axgbe/Makefile\nindex c2d4336..bcdcd54 100644\n--- a/drivers/net/axgbe/Makefile\n+++ b/drivers/net/axgbe/Makefile\n@@ -10,6 +10,7 @@ LIB = librte_pmd_axgbe.a\n \n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS)\n+CFLAGS += -DALLOW_EXPERIMENTAL_API\n \n EXPORT_MAP := rte_pmd_axgbe_version.map\n \ndiff --git a/drivers/net/axgbe/axgbe_ethdev.c b/drivers/net/axgbe/axgbe_ethdev.c\nindex cfb1720..56d8dac 100644\n--- a/drivers/net/axgbe/axgbe_ethdev.c\n+++ b/drivers/net/axgbe/axgbe_ethdev.c\n@@ -136,8 +136,8 @@ axgbe_dev_interrupt_handler(void *param)\n \t\t\t\t\t   DMA_CH_SR, dma_ch_isr);\n \t\t}\n \t}\n-\t/* Enable interrupts since disabled after generation*/\n-\trte_intr_enable(&pdata->pci_dev->intr_handle);\n+\t/* Unmask interrupts since disabled after generation*/\n+\trte_intr_ack(&pdata->pci_dev->intr_handle);\n }\n \n /*\ndiff --git a/drivers/net/axgbe/meson.build b/drivers/net/axgbe/meson.build\nindex 86873b7..226d11d 100644\n--- a/drivers/net/axgbe/meson.build\n+++ b/drivers/net/axgbe/meson.build\n@@ -14,6 +14,7 @@ sources = files('axgbe_ethdev.c',\n \t\t'axgbe_rxtx.c')\n \n cflags += '-Wno-cast-qual'\n+cflags += '-DALLOW_EXPERIMENTAL_API'\n \n if arch_subdir == 'x86'\n \tsources += files('axgbe_rxtx_vec_sse.c')\ndiff --git a/drivers/net/bnx2x/bnx2x_ethdev.c b/drivers/net/bnx2x/bnx2x_ethdev.c\nindex 10b4fdb..191a3ef 100644\n--- a/drivers/net/bnx2x/bnx2x_ethdev.c\n+++ b/drivers/net/bnx2x/bnx2x_ethdev.c\n@@ -133,7 +133,7 @@ bnx2x_interrupt_handler(void *param)\n \tPMD_DEBUG_PERIODIC_LOG(INFO, sc, \"Interrupt handled\");\n \n \tbnx2x_interrupt_action(dev, 1);\n-\trte_intr_enable(&sc->pci_dev->intr_handle);\n+\trte_intr_ack(&sc->pci_dev->intr_handle);\n }\n \n static void bnx2x_periodic_start(void *param)\ndiff --git a/drivers/net/bnx2x/meson.build b/drivers/net/bnx2x/meson.build\nindex 4892bb2..1bc84b7 100644\n--- a/drivers/net/bnx2x/meson.build\n+++ b/drivers/net/bnx2x/meson.build\n@@ -6,6 +6,7 @@ build = dep.found()\n reason = 'missing dependency, \"zlib\"'\n ext_deps += dep\n cflags += '-DZLIB_CONST'\n+cflags += '-DALLOW_EXPERIMENTAL_API'\n sources = files('bnx2x.c',\n \t'bnx2x_ethdev.c',\n \t'bnx2x_rxtx.c',\ndiff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c\nindex dc88661..0b7f501 100644\n--- a/drivers/net/e1000/em_ethdev.c\n+++ b/drivers/net/e1000/em_ethdev.c\n@@ -1001,7 +1001,7 @@ eth_em_rx_queue_intr_enable(struct rte_eth_dev *dev, __rte_unused uint16_t queue\n \tstruct rte_intr_handle *intr_handle = &pci_dev->intr_handle;\n \n \tem_rxq_intr_enable(hw);\n-\trte_intr_enable(intr_handle);\n+\trte_intr_ack(intr_handle);\n \n \treturn 0;\n }\n@@ -1568,7 +1568,7 @@ eth_em_interrupt_action(struct rte_eth_dev *dev,\n \t\treturn -1;\n \n \tintr->flags &= ~E1000_FLAG_NEED_LINK_UPDATE;\n-\trte_intr_enable(intr_handle);\n+\trte_intr_ack(intr_handle);\n \n \t/* set get_link_status to check register later */\n \thw->mac.get_link_status = 1;\ndiff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c\nindex 3ee28cf..793a31c 100644\n--- a/drivers/net/e1000/igb_ethdev.c\n+++ b/drivers/net/e1000/igb_ethdev.c\n@@ -2876,7 +2876,7 @@ eth_igb_interrupt_action(struct rte_eth_dev *dev,\n \t}\n \n \tigb_intr_enable(dev);\n-\trte_intr_enable(intr_handle);\n+\trte_intr_ack(intr_handle);\n \n \tif (intr->flags & E1000_FLAG_NEED_LINK_UPDATE) {\n \t\tintr->flags &= ~E1000_FLAG_NEED_LINK_UPDATE;\n@@ -2987,7 +2987,7 @@ eth_igbvf_interrupt_action(struct rte_eth_dev *dev, struct rte_intr_handle *intr\n \t}\n \n \tigbvf_intr_enable(dev);\n-\trte_intr_enable(intr_handle);\n+\trte_intr_ack(intr_handle);\n \n \treturn 0;\n }\n@@ -5500,7 +5500,7 @@ eth_igb_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)\n \tE1000_WRITE_REG(hw, E1000_EIMS, regval | mask);\n \tE1000_WRITE_FLUSH(hw);\n \n-\trte_intr_enable(intr_handle);\n+\trte_intr_ack(intr_handle);\n \n \treturn 0;\n }\ndiff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c\nindex a1e3836..e8fa8a2 100644\n--- a/drivers/net/fm10k/fm10k_ethdev.c\n+++ b/drivers/net/fm10k/fm10k_ethdev.c\n@@ -2381,7 +2381,7 @@ fm10k_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)\n \telse\n \t\tFM10K_WRITE_REG(hw, FM10K_VFITR(Q2V(pdev, queue_id)),\n \t\t\tFM10K_ITR_AUTOMASK | FM10K_ITR_MASK_CLEAR);\n-\trte_intr_enable(&pdev->intr_handle);\n+\trte_intr_ack(&pdev->intr_handle);\n \treturn 0;\n }\n \n@@ -2680,7 +2680,7 @@ fm10k_dev_interrupt_handler_pf(void *param)\n \tFM10K_WRITE_REG(hw, FM10K_ITR(0), FM10K_ITR_AUTOMASK |\n \t\t\t\t\tFM10K_ITR_MASK_CLEAR);\n \t/* Re-enable interrupt from host side */\n-\trte_intr_enable(dev->intr_handle);\n+\trte_intr_ack(dev->intr_handle);\n }\n \n /**\n@@ -2760,7 +2760,7 @@ fm10k_dev_interrupt_handler_vf(void *param)\n \tFM10K_WRITE_REG(hw, FM10K_VFITR(0), FM10K_ITR_AUTOMASK |\n \t\t\t\t\tFM10K_ITR_MASK_CLEAR);\n \t/* Re-enable interrupt from host side */\n-\trte_intr_enable(dev->intr_handle);\n+\trte_intr_ack(dev->intr_handle);\n }\n \n /* Mailbox message handler in VF */\ndiff --git a/drivers/net/fm10k/meson.build b/drivers/net/fm10k/meson.build\nindex 2772ea4..b7d34c7 100644\n--- a/drivers/net/fm10k/meson.build\n+++ b/drivers/net/fm10k/meson.build\n@@ -14,3 +14,4 @@ if arch_subdir == 'x86'\n endif\n \n includes += include_directories('base')\n+cflags += '-DALLOW_EXPERIMENTAL_API'\ndiff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c\nindex 2b9fc45..5217b9c 100644\n--- a/drivers/net/i40e/i40e_ethdev.c\n+++ b/drivers/net/i40e/i40e_ethdev.c\n@@ -11646,7 +11646,7 @@ i40e_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)\n \t\t\t       I40E_PFINT_DYN_CTLN_ITR_INDX_MASK);\n \n \tI40E_WRITE_FLUSH(hw);\n-\trte_intr_enable(&pci_dev->intr_handle);\n+\trte_intr_ack(&pci_dev->intr_handle);\n \n \treturn 0;\n }\ndiff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c\nindex 53dc05c..00d6ed5 100644\n--- a/drivers/net/iavf/iavf_ethdev.c\n+++ b/drivers/net/iavf/iavf_ethdev.c\n@@ -1098,7 +1098,7 @@ iavf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)\n \n \tIAVF_WRITE_FLUSH(hw);\n \n-\trte_intr_enable(&pci_dev->intr_handle);\n+\trte_intr_ack(&pci_dev->intr_handle);\n \n \treturn 0;\n }\ndiff --git a/drivers/net/ice/Makefile b/drivers/net/ice/Makefile\nindex 32abeb6..ae53c26 100644\n--- a/drivers/net/ice/Makefile\n+++ b/drivers/net/ice/Makefile\n@@ -10,6 +10,7 @@ LIB = librte_pmd_ice.a\n \n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS)\n+CFLAGS += -DALLOW_EXPERIMENTAL_API\n \n LDLIBS += -lrte_eal -lrte_mbuf -lrte_ethdev -lrte_kvargs\n LDLIBS += -lrte_bus_pci -lrte_mempool\ndiff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c\nindex 9ce730c..77b5a71 100644\n--- a/drivers/net/ice/ice_ethdev.c\n+++ b/drivers/net/ice/ice_ethdev.c\n@@ -1118,7 +1118,7 @@ ice_interrupt_handler(void *param)\n done:\n \t/* Enable interrupt */\n \tice_pf_enable_irq0(hw);\n-\trte_intr_enable(dev->intr_handle);\n+\trte_intr_ack(dev->intr_handle);\n }\n \n /*  Initialize SW parameters of PF */\n@@ -3002,7 +3002,7 @@ static int ice_rx_queue_intr_enable(struct rte_eth_dev *dev,\n \tval &= ~GLINT_DYN_CTL_WB_ON_ITR_M;\n \n \tICE_WRITE_REG(hw, GLINT_DYN_CTL(msix_intr), val);\n-\trte_intr_enable(&pci_dev->intr_handle);\n+\trte_intr_ack(&pci_dev->intr_handle);\n \n \treturn 0;\n }\ndiff --git a/drivers/net/ice/meson.build b/drivers/net/ice/meson.build\nindex 7f16647..70f349e 100644\n--- a/drivers/net/ice/meson.build\n+++ b/drivers/net/ice/meson.build\n@@ -13,6 +13,7 @@ sources = files(\n \n deps += ['hash']\n includes += include_directories('base')\n+cflags += '-DALLOW_EXPERIMENTAL_API'\n \n if arch_subdir == 'x86'\n \tsources += files('ice_rxtx_vec_sse.c')\ndiff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c\nindex 22c5b2c..f5920f5 100644\n--- a/drivers/net/ixgbe/ixgbe_ethdev.c\n+++ b/drivers/net/ixgbe/ixgbe_ethdev.c\n@@ -4502,7 +4502,7 @@ ixgbe_dev_interrupt_delayed_handler(void *param)\n \n \tPMD_DRV_LOG(DEBUG, \"enable intr in delayed handler S[%08x]\", eicr);\n \tixgbe_enable_intr(dev);\n-\trte_intr_enable(intr_handle);\n+\trte_intr_ack(intr_handle);\n }\n \n /**\n@@ -5763,7 +5763,7 @@ ixgbevf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)\n \tRTE_SET_USED(queue_id);\n \tIXGBE_WRITE_REG(hw, IXGBE_VTEIMS, intr->mask);\n \n-\trte_intr_enable(intr_handle);\n+\trte_intr_ack(intr_handle);\n \n \treturn 0;\n }\n@@ -5812,7 +5812,7 @@ ixgbe_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)\n \t\tmask &= (1 << (queue_id - 32));\n \t\tIXGBE_WRITE_REG(hw, IXGBE_EIMS_EX(1), mask);\n \t}\n-\trte_intr_enable(intr_handle);\n+\trte_intr_ack(intr_handle);\n \n \treturn 0;\n }\ndiff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c\nindex 1a7aa17..91a226c 100644\n--- a/drivers/net/nfp/nfp_net.c\n+++ b/drivers/net/nfp/nfp_net.c\n@@ -1412,7 +1412,7 @@ nfp_net_irq_unmask(struct rte_eth_dev *dev)\n \tif (hw->ctrl & NFP_NET_CFG_CTRL_MSIXAUTO) {\n \t\t/* If MSI-X auto-masking is used, clear the entry */\n \t\trte_wmb();\n-\t\trte_intr_enable(&pci_dev->intr_handle);\n+\t\trte_intr_ack(&pci_dev->intr_handle);\n \t} else {\n \t\t/* Make sure all updates are written before un-masking */\n \t\trte_wmb();\ndiff --git a/drivers/net/qede/Makefile b/drivers/net/qede/Makefile\nindex 2ecbd8d..a11d594 100644\n--- a/drivers/net/qede/Makefile\n+++ b/drivers/net/qede/Makefile\n@@ -12,6 +12,7 @@ LIB = librte_pmd_qede.a\n \n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS)\n+CFLAGS += -DALLOW_EXPERIMENTAL_API\n LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring\n LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs\n LDLIBS += -lrte_bus_pci\ndiff --git a/drivers/net/qede/meson.build b/drivers/net/qede/meson.build\nindex 12388a6..c8f9c6d 100644\n--- a/drivers/net/qede/meson.build\n+++ b/drivers/net/qede/meson.build\n@@ -10,3 +10,5 @@ sources = files(\n \t'qede_main.c',\n \t'qede_rxtx.c',\n )\n+\n+cflags += '-DALLOW_EXPERIMENTAL_API'\ndiff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c\nindex 82363e6..9ac9da3 100644\n--- a/drivers/net/qede/qede_ethdev.c\n+++ b/drivers/net/qede/qede_ethdev.c\n@@ -248,8 +248,8 @@ qede_interrupt_handler_intx(void *param)\n \tif (status & 0x1) {\n \t\tqede_interrupt_action(ECORE_LEADING_HWFN(edev));\n \n-\t\tif (rte_intr_enable(eth_dev->intr_handle))\n-\t\t\tDP_ERR(edev, \"rte_intr_enable failed\\n\");\n+\t\tif (rte_intr_ack(eth_dev->intr_handle))\n+\t\t\tDP_ERR(edev, \"rte_intr_ack failed\\n\");\n \t}\n }\n \n@@ -261,8 +261,8 @@ qede_interrupt_handler(void *param)\n \tstruct ecore_dev *edev = &qdev->edev;\n \n \tqede_interrupt_action(ECORE_LEADING_HWFN(edev));\n-\tif (rte_intr_enable(eth_dev->intr_handle))\n-\t\tDP_ERR(edev, \"rte_intr_enable failed\\n\");\n+\tif (rte_intr_ack(eth_dev->intr_handle))\n+\t\tDP_ERR(edev, \"rte_intr_ack failed\\n\");\n }\n \n static void\ndiff --git a/drivers/net/sfc/sfc_intr.c b/drivers/net/sfc/sfc_intr.c\nindex 1f4969b..76cb630 100644\n--- a/drivers/net/sfc/sfc_intr.c\n+++ b/drivers/net/sfc/sfc_intr.c\n@@ -79,7 +79,7 @@ sfc_intr_line_handler(void *cb_arg)\n \tif (qmask & (1 << sa->mgmt_evq_index))\n \t\tsfc_intr_handle_mgmt_evq(sa);\n \n-\tif (rte_intr_enable(&pci_dev->intr_handle) != 0)\n+\tif (rte_intr_ack(&pci_dev->intr_handle) != 0)\n \t\tsfc_err(sa, \"cannot reenable interrupts\");\n \n \tsfc_log_init(sa, \"done\");\n@@ -123,7 +123,7 @@ sfc_intr_message_handler(void *cb_arg)\n \n \tsfc_intr_handle_mgmt_evq(sa);\n \n-\tif (rte_intr_enable(&pci_dev->intr_handle) != 0)\n+\tif (rte_intr_ack(&pci_dev->intr_handle) != 0)\n \t\tsfc_err(sa, \"cannot reenable interrupts\");\n \n \tsfc_log_init(sa, \"done\");\ndiff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c\nindex 04aecb7..62c8274 100644\n--- a/drivers/net/virtio/virtio_ethdev.c\n+++ b/drivers/net/virtio/virtio_ethdev.c\n@@ -1265,6 +1265,20 @@ virtio_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)\n }\n \n static int\n+virtio_intr_unmask(struct rte_eth_dev *dev)\n+{\n+\tstruct virtio_hw *hw = dev->data->dev_private;\n+\n+\tif (rte_intr_ack(dev->intr_handle) < 0)\n+\t\treturn -1;\n+\n+\tif (!hw->virtio_user_dev)\n+\t\thw->use_msix = vtpci_msix_detect(RTE_ETH_DEV_TO_PCI(dev));\n+\n+\treturn 0;\n+}\n+\n+static int\n virtio_intr_enable(struct rte_eth_dev *dev)\n {\n \tstruct virtio_hw *hw = dev->data->dev_private;\n@@ -1457,7 +1471,7 @@ virtio_interrupt_handler(void *param)\n \tisr = vtpci_isr(hw);\n \tPMD_DRV_LOG(INFO, \"interrupt status = %#x\", isr);\n \n-\tif (virtio_intr_enable(dev) < 0)\n+\tif (virtio_intr_unmask(dev) < 0)\n \t\tPMD_DRV_LOG(ERR, \"interrupt enable failed\");\n \n \tif (isr & VIRTIO_PCI_ISR_CONFIG) {\ndiff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c\nindex 2b1e915..57feb37 100644\n--- a/drivers/net/vmxnet3/vmxnet3_ethdev.c\n+++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c\n@@ -1426,7 +1426,7 @@ vmxnet3_interrupt_handler(void *param)\n \n \tvmxnet3_process_events(dev);\n \n-\tif (rte_intr_enable(&pci_dev->intr_handle) < 0)\n+\tif (rte_intr_ack(&pci_dev->intr_handle) < 0)\n \t\tPMD_DRV_LOG(ERR, \"interrupt enable failed\");\n }\n \n",
    "prefixes": [
        "3/3"
    ]
}