get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 75777,
    "url": "http://patchwork.dpdk.org/api/patches/75777/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/1597933959-3219-1-git-send-email-xuemingl@nvidia.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.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": "<1597933959-3219-1-git-send-email-xuemingl@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1597933959-3219-1-git-send-email-xuemingl@nvidia.com",
    "date": "2020-08-20T14:32:39",
    "name": "vdpa/mlx5: fix event channel setup",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "769ef13e294266ec60ea1b25523ef0e9b5c4f354",
    "submitter": {
        "id": 1904,
        "url": "http://patchwork.dpdk.org/api/people/1904/?format=api",
        "name": "Xueming Li",
        "email": "xuemingl@nvidia.com"
    },
    "delegate": {
        "id": 2642,
        "url": "http://patchwork.dpdk.org/api/users/2642/?format=api",
        "username": "mcoquelin",
        "first_name": "Maxime",
        "last_name": "Coquelin",
        "email": "maxime.coquelin@redhat.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/1597933959-3219-1-git-send-email-xuemingl@nvidia.com/mbox/",
    "series": [
        {
            "id": 11727,
            "url": "http://patchwork.dpdk.org/api/series/11727/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=11727",
            "date": "2020-08-20T14:32:39",
            "name": "vdpa/mlx5: fix event channel setup",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/11727/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/75777/comments/",
    "check": "warning",
    "checks": "http://patchwork.dpdk.org/api/patches/75777/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 dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 9FD80A04AF;\n\tThu, 20 Aug 2020 16:32:58 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 81C771C0BC;\n\tThu, 20 Aug 2020 16:32:58 +0200 (CEST)",
            "from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129])\n by dpdk.org (Postfix) with ESMTP id 4685B1C0B4\n for <dev@dpdk.org>; Thu, 20 Aug 2020 16:32:57 +0200 (CEST)",
            "from Internal Mail-Server by MTLPINE1 (envelope-from\n xuemingl@nvidia.com) with SMTP; 20 Aug 2020 17:32:52 +0300",
            "from nvidia.com (pegasus05.mtr.labs.mlnx [10.210.16.100])\n by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 07KEWpQ3028293;\n Thu, 20 Aug 2020 17:32:51 +0300"
        ],
        "From": "Xueming Li <xuemingl@nvidia.com>",
        "To": "Matan Azrad <matan@nvidia.com>,\n Viacheslav Ovsiienko <viacheslavo@nvidia.com>",
        "Cc": "dev@dpdk.org, Asaf Penso <asafp@nvidia.com>,\n Xueming Li <xuemingl@mellanox.com>",
        "Date": "Thu, 20 Aug 2020 14:32:39 +0000",
        "Message-Id": "<1597933959-3219-1-git-send-email-xuemingl@nvidia.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "Subject": "[dpdk-dev] [PATCH] vdpa/mlx5: fix event channel setup",
        "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 <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: Xueming Li <xuemingl@mellanox.com>\n\nDuring vdap device setup, if some error happens, event channel release\nstuck at polling event channel.\n\nEvent channel fd is set to nonblocking in cqe setup, so if any error\nhappens before this function and after event channel created, the\npooling before releasing resources will stuck.\n\nThis patch moves event channel to non-blocking mode right after\ncreation.\n\nFixes: 8395927cdf (\"vdpa/mlx5: prepare HW queues\")\nCc: matan@nvidia.com\n\nSigned-off-by: Xueming Li <xuemingl@nvidia.com>\n---\n drivers/vdpa/mlx5/mlx5_vdpa_event.c | 15 ++++++++-------\n 1 file changed, 8 insertions(+), 7 deletions(-)",
    "diff": "diff --git a/drivers/vdpa/mlx5/mlx5_vdpa_event.c b/drivers/vdpa/mlx5/mlx5_vdpa_event.c\nindex 5a2d4fb1ec..bda547ffe0 100644\n--- a/drivers/vdpa/mlx5/mlx5_vdpa_event.c\n+++ b/drivers/vdpa/mlx5/mlx5_vdpa_event.c\n@@ -51,6 +51,8 @@ mlx5_vdpa_event_qp_global_release(struct mlx5_vdpa_priv *priv)\n static int\n mlx5_vdpa_event_qp_global_prepare(struct mlx5_vdpa_priv *priv)\n {\n+\tint flags, ret;\n+\n \tif (priv->eventc)\n \t\treturn 0;\n \tif (mlx5_glue->devx_query_eqn(priv->ctx, 0, &priv->eqn)) {\n@@ -66,6 +68,12 @@ mlx5_vdpa_event_qp_global_prepare(struct mlx5_vdpa_priv *priv)\n \t\t\trte_errno);\n \t\tgoto error;\n \t}\n+\tflags = fcntl(priv->eventc->fd, F_GETFL);\n+\tret = fcntl(priv->eventc->fd, F_SETFL, flags | O_NONBLOCK);\n+\tif (ret) {\n+\t\tDRV_LOG(ERR, \"Failed to change event channel FD.\");\n+\t\tgoto error;\n+\t}\n \tpriv->uar = mlx5_glue->devx_alloc_uar(priv->ctx, 0);\n \tif (!priv->uar) {\n \t\trte_errno = errno;\n@@ -376,7 +384,6 @@ mlx5_vdpa_interrupt_handler(void *cb_arg)\n int\n mlx5_vdpa_cqe_event_setup(struct mlx5_vdpa_priv *priv)\n {\n-\tint flags;\n \tint ret;\n \n \tif (!priv->eventc)\n@@ -393,12 +400,6 @@ mlx5_vdpa_cqe_event_setup(struct mlx5_vdpa_priv *priv)\n \t\t\treturn -1;\n \t\t}\n \t}\n-\tflags = fcntl(priv->eventc->fd, F_GETFL);\n-\tret = fcntl(priv->eventc->fd, F_SETFL, flags | O_NONBLOCK);\n-\tif (ret) {\n-\t\tDRV_LOG(ERR, \"Failed to change event channel FD.\");\n-\t\tgoto error;\n-\t}\n \tpriv->intr_handle.fd = priv->eventc->fd;\n \tpriv->intr_handle.type = RTE_INTR_HANDLE_EXT;\n \tif (rte_intr_callback_register(&priv->intr_handle,\n",
    "prefixes": []
}