get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 102787,
    "url": "http://patches.dpdk.org/api/patches/102787/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20211025142712.1273-4-david.marchand@redhat.com/",
    "project": {
        "id": 1,
        "url": "http://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": "<20211025142712.1273-4-david.marchand@redhat.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20211025142712.1273-4-david.marchand@redhat.com",
    "date": "2021-10-25T14:27:06",
    "name": "[v8,3/9] test/interrupts: remove direct access to interrupt handle",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "a1c16fc861872f723c34fdfa84be2a38efa898a9",
    "submitter": {
        "id": 1173,
        "url": "http://patches.dpdk.org/api/people/1173/?format=api",
        "name": "David Marchand",
        "email": "david.marchand@redhat.com"
    },
    "delegate": {
        "id": 24651,
        "url": "http://patches.dpdk.org/api/users/24651/?format=api",
        "username": "dmarchand",
        "first_name": "David",
        "last_name": "Marchand",
        "email": "david.marchand@redhat.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20211025142712.1273-4-david.marchand@redhat.com/mbox/",
    "series": [
        {
            "id": 19959,
            "url": "http://patches.dpdk.org/api/series/19959/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=19959",
            "date": "2021-10-25T14:27:03",
            "name": "make rte_intr_handle internal",
            "version": 8,
            "mbox": "http://patches.dpdk.org/series/19959/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/102787/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/102787/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id EE9B4A0C4E;\n\tMon, 25 Oct 2021 16:28:00 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 32CF641164;\n\tMon, 25 Oct 2021 16:27:51 +0200 (CEST)",
            "from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.133.124])\n by mails.dpdk.org (Postfix) with ESMTP id 03B4F41156\n for <dev@dpdk.org>; Mon, 25 Oct 2021 16:27:49 +0200 (CEST)",
            "from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com\n [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id\n us-mta-308-3cE87dOLO9mGiHVPE5PzZQ-1; Mon, 25 Oct 2021 10:27:45 -0400",
            "from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com\n [10.5.11.23])\n (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n (No client certificate requested)\n by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A1D2C802B52;\n Mon, 25 Oct 2021 14:27:44 +0000 (UTC)",
            "from dmarchan.remote.csb (unknown [10.40.192.64])\n by smtp.corp.redhat.com (Postfix) with ESMTP id 58F5619C79;\n Mon, 25 Oct 2021 14:27:42 +0000 (UTC)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1635172069;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=v029NweIn304M/eTWItJiGwqUSOVmrwPqGcJ30xuXL4=;\n b=IUuJBI7uolP85fwAbST3mgDKuyLLKjE/eFE9QCmbml/dPtxZDJ1vQMcRL+3bTPyw/P26TE\n pW+ALPxveNRv9ZtjJ4acW0cSGxJrqo54SwLS+K1qN2EAwpGZR4Veec9v3hw0hG4GDCm+pZ\n tp2SKB3Qv/cs65Y8EuBiEhaISyOO+ck=",
        "X-MC-Unique": "3cE87dOLO9mGiHVPE5PzZQ-1",
        "From": "David Marchand <david.marchand@redhat.com>",
        "To": "hkalra@marvell.com,\n\tdev@dpdk.org",
        "Cc": "dmitry.kozliuk@gmail.com,\n\trasland@nvidia.com,\n\tthomas@monjalon.net",
        "Date": "Mon, 25 Oct 2021 16:27:06 +0200",
        "Message-Id": "<20211025142712.1273-4-david.marchand@redhat.com>",
        "In-Reply-To": "<20211025142712.1273-1-david.marchand@redhat.com>",
        "References": "<20211022204934.132186-1-hkalra@marvell.com>\n <20211025142712.1273-1-david.marchand@redhat.com>",
        "MIME-Version": "1.0",
        "X-Scanned-By": "MIMEDefang 2.84 on 10.5.11.23",
        "Authentication-Results": "relay.mimecast.com;\n auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=david.marchand@redhat.com",
        "X-Mimecast-Spam-Score": "0",
        "X-Mimecast-Originator": "redhat.com",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain; charset=\"US-ASCII\"",
        "Subject": "[dpdk-dev] [PATCH v8 3/9] test/interrupts: remove direct access to\n interrupt handle",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <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 <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: Harman Kalra <hkalra@marvell.com>\n\nUpdating the interrupt testsuite to make use of interrupt\nhandle get set APIs.\n\nSigned-off-by: Harman Kalra <hkalra@marvell.com>\nSigned-off-by: David Marchand <david.marchand@redhat.com>\n---\nChanges since v5:\n- fixed leak on when some interrupt handle can't be allocated,\n\n---\n app/test/test_interrupts.c | 164 ++++++++++++++++++++++---------------\n 1 file changed, 98 insertions(+), 66 deletions(-)",
    "diff": "diff --git a/app/test/test_interrupts.c b/app/test/test_interrupts.c\nindex 233b14a70b..2a05399f96 100644\n--- a/app/test/test_interrupts.c\n+++ b/app/test/test_interrupts.c\n@@ -16,7 +16,7 @@\n \n /* predefined interrupt handle types */\n enum test_interrupt_handle_type {\n-\tTEST_INTERRUPT_HANDLE_INVALID,\n+\tTEST_INTERRUPT_HANDLE_INVALID = 0,\n \tTEST_INTERRUPT_HANDLE_VALID,\n \tTEST_INTERRUPT_HANDLE_VALID_UIO,\n \tTEST_INTERRUPT_HANDLE_VALID_ALARM,\n@@ -27,7 +27,7 @@ enum test_interrupt_handle_type {\n \n /* flag of if callback is called */\n static volatile int flag;\n-static struct rte_intr_handle intr_handles[TEST_INTERRUPT_HANDLE_MAX];\n+static struct rte_intr_handle *intr_handles[TEST_INTERRUPT_HANDLE_MAX];\n static enum test_interrupt_handle_type test_intr_type =\n \t\t\t\tTEST_INTERRUPT_HANDLE_MAX;\n \n@@ -50,7 +50,7 @@ static union intr_pipefds pfds;\n static inline int\n test_interrupt_handle_sanity_check(struct rte_intr_handle *intr_handle)\n {\n-\tif (!intr_handle || intr_handle->fd < 0)\n+\tif (!intr_handle || rte_intr_fd_get(intr_handle) < 0)\n \t\treturn -1;\n \n \treturn 0;\n@@ -62,31 +62,54 @@ test_interrupt_handle_sanity_check(struct rte_intr_handle *intr_handle)\n static int\n test_interrupt_init(void)\n {\n+\tstruct rte_intr_handle *test_intr_handle;\n+\tint i;\n+\n \tif (pipe(pfds.pipefd) < 0)\n \t\treturn -1;\n \n-\tintr_handles[TEST_INTERRUPT_HANDLE_INVALID].fd = -1;\n-\tintr_handles[TEST_INTERRUPT_HANDLE_INVALID].type =\n-\t\t\t\t\tRTE_INTR_HANDLE_UNKNOWN;\n+\tfor (i = 0; i < TEST_INTERRUPT_HANDLE_MAX; i++) {\n+\t\tintr_handles[i] =\n+\t\t\trte_intr_instance_alloc(RTE_INTR_INSTANCE_F_PRIVATE);\n+\t\tif (!intr_handles[i])\n+\t\t\treturn -1;\n+\t}\n \n-\tintr_handles[TEST_INTERRUPT_HANDLE_VALID].fd = pfds.readfd;\n-\tintr_handles[TEST_INTERRUPT_HANDLE_VALID].type =\n-\t\t\t\t\tRTE_INTR_HANDLE_UNKNOWN;\n+\ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_INVALID];\n+\tif (rte_intr_fd_set(test_intr_handle, -1))\n+\t\treturn -1;\n+\tif (rte_intr_type_set(test_intr_handle, RTE_INTR_HANDLE_UNKNOWN))\n+\t\treturn -1;\n \n-\tintr_handles[TEST_INTERRUPT_HANDLE_VALID_UIO].fd = pfds.readfd;\n-\tintr_handles[TEST_INTERRUPT_HANDLE_VALID_UIO].type =\n-\t\t\t\t\tRTE_INTR_HANDLE_UIO;\n+\ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID];\n+\tif (rte_intr_fd_set(test_intr_handle, pfds.readfd))\n+\t\treturn -1;\n+\tif (rte_intr_type_set(test_intr_handle, RTE_INTR_HANDLE_UNKNOWN))\n+\t\treturn -1;\n+\n+\ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID_UIO];\n+\tif (rte_intr_fd_set(test_intr_handle, pfds.readfd))\n+\t\treturn -1;\n+\tif (rte_intr_type_set(test_intr_handle, RTE_INTR_HANDLE_UIO))\n+\t\treturn -1;\n \n-\tintr_handles[TEST_INTERRUPT_HANDLE_VALID_ALARM].fd = pfds.readfd;\n-\tintr_handles[TEST_INTERRUPT_HANDLE_VALID_ALARM].type =\n-\t\t\t\t\tRTE_INTR_HANDLE_ALARM;\n+\ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID_ALARM];\n+\tif (rte_intr_fd_set(test_intr_handle, pfds.readfd))\n+\t\treturn -1;\n+\tif (rte_intr_type_set(test_intr_handle, RTE_INTR_HANDLE_ALARM))\n+\t\treturn -1;\n \n-\tintr_handles[TEST_INTERRUPT_HANDLE_VALID_DEV_EVENT].fd = pfds.readfd;\n-\tintr_handles[TEST_INTERRUPT_HANDLE_VALID_DEV_EVENT].type =\n-\t\t\t\t\tRTE_INTR_HANDLE_DEV_EVENT;\n+\ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID_DEV_EVENT];\n+\tif (rte_intr_fd_set(test_intr_handle, pfds.readfd))\n+\t\treturn -1;\n+\tif (rte_intr_type_set(test_intr_handle, RTE_INTR_HANDLE_DEV_EVENT))\n+\t\treturn -1;\n \n-\tintr_handles[TEST_INTERRUPT_HANDLE_CASE1].fd = pfds.writefd;\n-\tintr_handles[TEST_INTERRUPT_HANDLE_CASE1].type = RTE_INTR_HANDLE_UIO;\n+\ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_CASE1];\n+\tif (rte_intr_fd_set(test_intr_handle, pfds.writefd))\n+\t\treturn -1;\n+\tif (rte_intr_type_set(test_intr_handle, RTE_INTR_HANDLE_UIO))\n+\t\treturn -1;\n \n \treturn 0;\n }\n@@ -97,6 +120,10 @@ test_interrupt_init(void)\n static int\n test_interrupt_deinit(void)\n {\n+\tint i;\n+\n+\tfor (i = 0; i < TEST_INTERRUPT_HANDLE_MAX; i++)\n+\t\trte_intr_instance_free(intr_handles[i]);\n \tclose(pfds.pipefd[0]);\n \tclose(pfds.pipefd[1]);\n \n@@ -125,8 +152,10 @@ test_interrupt_handle_compare(struct rte_intr_handle *intr_handle_l,\n \tif (!intr_handle_l || !intr_handle_r)\n \t\treturn -1;\n \n-\tif (intr_handle_l->fd != intr_handle_r->fd ||\n-\t\tintr_handle_l->type != intr_handle_r->type)\n+\tif (rte_intr_fd_get(intr_handle_l) !=\n+\t    rte_intr_fd_get(intr_handle_r) ||\n+\t\trte_intr_type_get(intr_handle_l) !=\n+\t\trte_intr_type_get(intr_handle_r))\n \t\treturn -1;\n \n \treturn 0;\n@@ -178,6 +207,8 @@ static void\n test_interrupt_callback(void *arg)\n {\n \tstruct rte_intr_handle *intr_handle = arg;\n+\tstruct rte_intr_handle *test_intr_handle;\n+\n \tif (test_intr_type >= TEST_INTERRUPT_HANDLE_MAX) {\n \t\tprintf(\"invalid interrupt type\\n\");\n \t\tflag = -1;\n@@ -198,8 +229,8 @@ test_interrupt_callback(void *arg)\n \t\treturn;\n \t}\n \n-\tif (test_interrupt_handle_compare(intr_handle,\n-\t\t\t&(intr_handles[test_intr_type])) == 0)\n+\ttest_intr_handle = intr_handles[test_intr_type];\n+\tif (test_interrupt_handle_compare(intr_handle, test_intr_handle) == 0)\n \t\tflag = 1;\n }\n \n@@ -223,7 +254,7 @@ test_interrupt_callback_1(void *arg)\n static int\n test_interrupt_enable(void)\n {\n-\tstruct rte_intr_handle test_intr_handle;\n+\tstruct rte_intr_handle *test_intr_handle;\n \n \t/* check with null intr_handle */\n \tif (rte_intr_enable(NULL) == 0) {\n@@ -233,7 +264,7 @@ test_interrupt_enable(void)\n \n \t/* check with invalid intr_handle */\n \ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_INVALID];\n-\tif (rte_intr_enable(&test_intr_handle) == 0) {\n+\tif (rte_intr_enable(test_intr_handle) == 0) {\n \t\tprintf(\"unexpectedly enable invalid intr_handle \"\n \t\t\t\"successfully\\n\");\n \t\treturn -1;\n@@ -241,7 +272,7 @@ test_interrupt_enable(void)\n \n \t/* check with valid intr_handle */\n \ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID];\n-\tif (rte_intr_enable(&test_intr_handle) == 0) {\n+\tif (rte_intr_enable(test_intr_handle) == 0) {\n \t\tprintf(\"unexpectedly enable a specific intr_handle \"\n \t\t\t\"successfully\\n\");\n \t\treturn -1;\n@@ -249,7 +280,7 @@ test_interrupt_enable(void)\n \n \t/* check with specific valid intr_handle */\n \ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID_ALARM];\n-\tif (rte_intr_enable(&test_intr_handle) == 0) {\n+\tif (rte_intr_enable(test_intr_handle) == 0) {\n \t\tprintf(\"unexpectedly enable a specific intr_handle \"\n \t\t\t\"successfully\\n\");\n \t\treturn -1;\n@@ -257,7 +288,7 @@ test_interrupt_enable(void)\n \n \t/* check with specific valid intr_handle */\n \ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID_DEV_EVENT];\n-\tif (rte_intr_enable(&test_intr_handle) == 0) {\n+\tif (rte_intr_enable(test_intr_handle) == 0) {\n \t\tprintf(\"unexpectedly enable a specific intr_handle \"\n \t\t\t\"successfully\\n\");\n \t\treturn -1;\n@@ -265,13 +296,13 @@ test_interrupt_enable(void)\n \n \t/* check with valid handler and its type */\n \ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_CASE1];\n-\tif (rte_intr_enable(&test_intr_handle) < 0) {\n+\tif (rte_intr_enable(test_intr_handle) < 0) {\n \t\tprintf(\"fail to enable interrupt on a simulated handler\\n\");\n \t\treturn -1;\n \t}\n \n \ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID_UIO];\n-\tif (rte_intr_enable(&test_intr_handle) == 0) {\n+\tif (rte_intr_enable(test_intr_handle) == 0) {\n \t\tprintf(\"unexpectedly enable a specific intr_handle \"\n \t\t\t\"successfully\\n\");\n \t\treturn -1;\n@@ -286,7 +317,7 @@ test_interrupt_enable(void)\n static int\n test_interrupt_disable(void)\n {\n-\tstruct rte_intr_handle test_intr_handle;\n+\tstruct rte_intr_handle *test_intr_handle;\n \n \t/* check with null intr_handle */\n \tif (rte_intr_disable(NULL) == 0) {\n@@ -297,7 +328,7 @@ test_interrupt_disable(void)\n \n \t/* check with invalid intr_handle */\n \ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_INVALID];\n-\tif (rte_intr_disable(&test_intr_handle) == 0) {\n+\tif (rte_intr_disable(test_intr_handle) == 0) {\n \t\tprintf(\"unexpectedly disable invalid intr_handle \"\n \t\t\t\"successfully\\n\");\n \t\treturn -1;\n@@ -305,7 +336,7 @@ test_interrupt_disable(void)\n \n \t/* check with valid intr_handle */\n \ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID];\n-\tif (rte_intr_disable(&test_intr_handle) == 0) {\n+\tif (rte_intr_disable(test_intr_handle) == 0) {\n \t\tprintf(\"unexpectedly disable a specific intr_handle \"\n \t\t\t\"successfully\\n\");\n \t\treturn -1;\n@@ -313,7 +344,7 @@ test_interrupt_disable(void)\n \n \t/* check with specific valid intr_handle */\n \ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID_ALARM];\n-\tif (rte_intr_disable(&test_intr_handle) == 0) {\n+\tif (rte_intr_disable(test_intr_handle) == 0) {\n \t\tprintf(\"unexpectedly disable a specific intr_handle \"\n \t\t\t\"successfully\\n\");\n \t\treturn -1;\n@@ -321,7 +352,7 @@ test_interrupt_disable(void)\n \n \t/* check with specific valid intr_handle */\n \ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID_DEV_EVENT];\n-\tif (rte_intr_disable(&test_intr_handle) == 0) {\n+\tif (rte_intr_disable(test_intr_handle) == 0) {\n \t\tprintf(\"unexpectedly disable a specific intr_handle \"\n \t\t\t\"successfully\\n\");\n \t\treturn -1;\n@@ -329,13 +360,13 @@ test_interrupt_disable(void)\n \n \t/* check with valid handler and its type */\n \ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_CASE1];\n-\tif (rte_intr_disable(&test_intr_handle) < 0) {\n+\tif (rte_intr_disable(test_intr_handle) < 0) {\n \t\tprintf(\"fail to disable interrupt on a simulated handler\\n\");\n \t\treturn -1;\n \t}\n \n \ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID_UIO];\n-\tif (rte_intr_disable(&test_intr_handle) == 0) {\n+\tif (rte_intr_disable(test_intr_handle) == 0) {\n \t\tprintf(\"unexpectedly disable a specific intr_handle \"\n \t\t\t\"successfully\\n\");\n \t\treturn -1;\n@@ -351,13 +382,13 @@ static int\n test_interrupt_full_path_check(enum test_interrupt_handle_type intr_type)\n {\n \tint count;\n-\tstruct rte_intr_handle test_intr_handle;\n+\tstruct rte_intr_handle *test_intr_handle;\n \n \tflag = 0;\n \ttest_intr_handle = intr_handles[intr_type];\n \ttest_intr_type = intr_type;\n-\tif (rte_intr_callback_register(&test_intr_handle,\n-\t\t\ttest_interrupt_callback, &test_intr_handle) < 0) {\n+\tif (rte_intr_callback_register(test_intr_handle,\n+\t\t\ttest_interrupt_callback, test_intr_handle) < 0) {\n \t\tprintf(\"fail to register callback\\n\");\n \t\treturn -1;\n \t}\n@@ -371,9 +402,9 @@ test_interrupt_full_path_check(enum test_interrupt_handle_type intr_type)\n \n \trte_delay_ms(TEST_INTERRUPT_CHECK_INTERVAL);\n \twhile ((count =\n-\t\trte_intr_callback_unregister(&test_intr_handle,\n+\t\trte_intr_callback_unregister(test_intr_handle,\n \t\t\t\t\t     test_interrupt_callback,\n-\t\t\t\t\t     &test_intr_handle)) < 0) {\n+\t\t\t\t\t     test_intr_handle)) < 0) {\n \t\tif (count != -EAGAIN)\n \t\t\treturn -1;\n \t}\n@@ -396,11 +427,11 @@ static int\n test_interrupt(void)\n {\n \tint ret = -1;\n-\tstruct rte_intr_handle test_intr_handle;\n+\tstruct rte_intr_handle *test_intr_handle;\n \n \tif (test_interrupt_init() < 0) {\n \t\tprintf(\"fail to initialize for testing interrupt\\n\");\n-\t\treturn -1;\n+\t\tgoto out;\n \t}\n \n \tprintf(\"Check unknown valid interrupt full path\\n\");\n@@ -445,8 +476,8 @@ test_interrupt(void)\n \n \t/* check if it will fail to register cb with invalid intr_handle */\n \ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_INVALID];\n-\tif (rte_intr_callback_register(&test_intr_handle,\n-\t\t\ttest_interrupt_callback, &test_intr_handle) == 0) {\n+\tif (rte_intr_callback_register(test_intr_handle,\n+\t\t\ttest_interrupt_callback, test_intr_handle) == 0) {\n \t\tprintf(\"unexpectedly register successfully with invalid \"\n \t\t\t\"intr_handle\\n\");\n \t\tgoto out;\n@@ -454,7 +485,8 @@ test_interrupt(void)\n \n \t/* check if it will fail to register without callback */\n \ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID];\n-\tif (rte_intr_callback_register(&test_intr_handle, NULL, &test_intr_handle) == 0) {\n+\tif (rte_intr_callback_register(test_intr_handle, NULL,\n+\t\t\t\t       test_intr_handle) == 0) {\n \t\tprintf(\"unexpectedly register successfully with \"\n \t\t\t\"null callback\\n\");\n \t\tgoto out;\n@@ -470,8 +502,8 @@ test_interrupt(void)\n \n \t/* check if it will fail to unregister cb with invalid intr_handle */\n \ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_INVALID];\n-\tif (rte_intr_callback_unregister(&test_intr_handle,\n-\t\t\ttest_interrupt_callback, &test_intr_handle) > 0) {\n+\tif (rte_intr_callback_unregister(test_intr_handle,\n+\t\t\ttest_interrupt_callback, test_intr_handle) > 0) {\n \t\tprintf(\"unexpectedly unregister successfully with \"\n \t\t\t\"invalid intr_handle\\n\");\n \t\tgoto out;\n@@ -479,29 +511,29 @@ test_interrupt(void)\n \n \t/* check if it is ok to register the same intr_handle twice */\n \ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID];\n-\tif (rte_intr_callback_register(&test_intr_handle,\n-\t\t\ttest_interrupt_callback, &test_intr_handle) < 0) {\n+\tif (rte_intr_callback_register(test_intr_handle,\n+\t\t\ttest_interrupt_callback, test_intr_handle) < 0) {\n \t\tprintf(\"it fails to register test_interrupt_callback\\n\");\n \t\tgoto out;\n \t}\n-\tif (rte_intr_callback_register(&test_intr_handle,\n-\t\t\ttest_interrupt_callback_1, &test_intr_handle) < 0) {\n+\tif (rte_intr_callback_register(test_intr_handle,\n+\t\t\ttest_interrupt_callback_1, test_intr_handle) < 0) {\n \t\tprintf(\"it fails to register test_interrupt_callback_1\\n\");\n \t\tgoto out;\n \t}\n \t/* check if it will fail to unregister with invalid parameter */\n-\tif (rte_intr_callback_unregister(&test_intr_handle,\n+\tif (rte_intr_callback_unregister(test_intr_handle,\n \t\t\ttest_interrupt_callback, (void *)0xff) != 0) {\n \t\tprintf(\"unexpectedly unregisters successfully with \"\n \t\t\t\t\t\t\t\"invalid arg\\n\");\n \t\tgoto out;\n \t}\n-\tif (rte_intr_callback_unregister(&test_intr_handle,\n-\t\t\ttest_interrupt_callback, &test_intr_handle) <= 0) {\n+\tif (rte_intr_callback_unregister(test_intr_handle,\n+\t\t\ttest_interrupt_callback, test_intr_handle) <= 0) {\n \t\tprintf(\"it fails to unregister test_interrupt_callback\\n\");\n \t\tgoto out;\n \t}\n-\tif (rte_intr_callback_unregister(&test_intr_handle,\n+\tif (rte_intr_callback_unregister(test_intr_handle,\n \t\t\ttest_interrupt_callback_1, (void *)-1) <= 0) {\n \t\tprintf(\"it fails to unregister test_interrupt_callback_1 \"\n \t\t\t\"for all\\n\");\n@@ -529,27 +561,27 @@ test_interrupt(void)\n \tprintf(\"Clearing for interrupt tests\\n\");\n \t/* clear registered callbacks */\n \ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID];\n-\trte_intr_callback_unregister(&test_intr_handle,\n+\trte_intr_callback_unregister(test_intr_handle,\n \t\t\ttest_interrupt_callback, (void *)-1);\n-\trte_intr_callback_unregister(&test_intr_handle,\n+\trte_intr_callback_unregister(test_intr_handle,\n \t\t\ttest_interrupt_callback_1, (void *)-1);\n \n \ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID_UIO];\n-\trte_intr_callback_unregister(&test_intr_handle,\n+\trte_intr_callback_unregister(test_intr_handle,\n \t\t\ttest_interrupt_callback, (void *)-1);\n-\trte_intr_callback_unregister(&test_intr_handle,\n+\trte_intr_callback_unregister(test_intr_handle,\n \t\t\ttest_interrupt_callback_1, (void *)-1);\n \n \ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID_ALARM];\n-\trte_intr_callback_unregister(&test_intr_handle,\n+\trte_intr_callback_unregister(test_intr_handle,\n \t\t\ttest_interrupt_callback, (void *)-1);\n-\trte_intr_callback_unregister(&test_intr_handle,\n+\trte_intr_callback_unregister(test_intr_handle,\n \t\t\ttest_interrupt_callback_1, (void *)-1);\n \n \ttest_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID_DEV_EVENT];\n-\trte_intr_callback_unregister(&test_intr_handle,\n+\trte_intr_callback_unregister(test_intr_handle,\n \t\t\ttest_interrupt_callback, (void *)-1);\n-\trte_intr_callback_unregister(&test_intr_handle,\n+\trte_intr_callback_unregister(test_intr_handle,\n \t\t\ttest_interrupt_callback_1, (void *)-1);\n \n \trte_delay_ms(2 * TEST_INTERRUPT_CHECK_INTERVAL);\n",
    "prefixes": [
        "v8",
        "3/9"
    ]
}