get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 41905,
    "url": "http://patchwork.dpdk.org/api/patches/41905/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20180629015508.26599-6-dg@adax.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": "<20180629015508.26599-6-dg@adax.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20180629015508.26599-6-dg@adax.com",
    "date": "2018-06-29T01:55:03",
    "name": "[v2,05/10] kni: don't run rte_kni_handle_request after interface release",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": true,
    "hash": "55af38b04df5f69504906a7ce0cf1b436966e95f",
    "submitter": {
        "id": 1040,
        "url": "http://patchwork.dpdk.org/api/people/1040/?format=api",
        "name": "Dan Gora",
        "email": "dg@adax.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patchwork.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20180629015508.26599-6-dg@adax.com/mbox/",
    "series": [
        {
            "id": 305,
            "url": "http://patchwork.dpdk.org/api/series/305/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=305",
            "date": "2018-06-29T01:54:59",
            "name": "[v2,01/10] kni: remove unused variables from struct kni_dev",
            "version": 2,
            "mbox": "http://patchwork.dpdk.org/series/305/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/41905/comments/",
    "check": "fail",
    "checks": "http://patchwork.dpdk.org/api/patches/41905/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 6E1631B55D;\n\tFri, 29 Jun 2018 03:56:03 +0200 (CEST)",
            "from mail-oi0-f65.google.com (mail-oi0-f65.google.com\n\t[209.85.218.65]) by dpdk.org (Postfix) with ESMTP id 440771B54A\n\tfor <dev@dpdk.org>; Fri, 29 Jun 2018 03:55:55 +0200 (CEST)",
            "by mail-oi0-f65.google.com with SMTP id f79-v6so7028272oib.7\n\tfor <dev@dpdk.org>; Thu, 28 Jun 2018 18:55:55 -0700 (PDT)",
            "from linux.adax.com (172-11-198-60.lightspeed.sntcca.sbcglobal.net.\n\t[172.11.198.60]) by smtp.gmail.com with ESMTPSA id\n\tn3-v6sm3941288otk.38.2018.06.28.18.55.53\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tThu, 28 Jun 2018 18:55:53 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=sender:from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=S1g3e3n/4fwp3C2kckm+nJ4Q8ogPllXouqe+NAUrqAU=;\n\tb=skh5/T/Z5cMGI7GHI9kbmSYOqYZnYtJxP6CQL22jH1usUUOdk5Qyn8XZAPC1ZpkESt\n\tDZu+9k6BIY3NVFUWSZxshiE8Nq/Gjp99WFqXz7hK8jmTiFlIJNUT3HQ6LWtfXaZLgiSr\n\t2qA9KvGW+20GSfq0NnzL5fIeemvfc/ECd8+qiHmV8wqIgfRq6rkIOJwR4EKVhSEefMTz\n\tQF4aEKDDhV1Y6lmUbVkGn4TiZpGfub0pNAPundQEPJq1ovVaHi1gx3W3bnSO7MitHhbR\n\tT1mTd4Pyp8DCHu8uKuxS1d1jTcpwfaJJspxvvAybv8KpxmXtOr6TypgsTWVY/WpH0EPM\n\tp1Ww==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:sender:from:to:cc:subject:date:message-id\n\t:in-reply-to:references;\n\tbh=S1g3e3n/4fwp3C2kckm+nJ4Q8ogPllXouqe+NAUrqAU=;\n\tb=f50W7PdjFm6Z8pXcqjvKXy0M3Vhi9eSv2fRy9gBSPsrHm/AKApdems4DlQjchOfzt6\n\tysk9AGq3ctFO4Vk64Mpfyt+rVhQXUWBUqRSd9rTmzLADHczsQv1a8+XpgU3r0eNOXUZd\n\t6SBe4SPWquLSN5G1IAeRSjOnJJZNA4maHvNaLzgPZNah8Eo7YZxqv962016EZVXk2ePV\n\tcZCah0AaLmfh6Q7DYzGN6cFaAuyPO09SWS094BYd529Ue0ay484eqzya37YcNPxRtGhF\n\t6AfZnj2zWxVaX0jIr/PQFEWp/WO/CIIQ3Jp989O3L/lwluIrwjYpkKcSupere3zjIJI0\n\tvvVQ==",
        "X-Gm-Message-State": "APt69E1ngng/4iG5Cs3MrGg3Jji3ULIUfbEg1iHXNoC5OvHJSMgCauMg\n\tDCa+97fGmqANHJhFeoxXV1c=",
        "X-Google-Smtp-Source": "AAOMgpfqKTrBzaJc1gjXnO8Oc3gwqAvG4HbICe47Yg+ubkJFVAH2vLNQC/8O3cX7stIXx0SLdzTecA==",
        "X-Received": "by 2002:aca:3357:: with SMTP id\n\tz84-v6mr22438oiz.49.1530237354471; \n\tThu, 28 Jun 2018 18:55:54 -0700 (PDT)",
        "From": "Dan Gora <dg@adax.com>",
        "To": "ferruh.yigit@intel.com",
        "Cc": "dev@dpdk.org,\n\tDan Gora <dg@adax.com>",
        "Date": "Thu, 28 Jun 2018 18:55:03 -0700",
        "Message-Id": "<20180629015508.26599-6-dg@adax.com>",
        "X-Mailer": "git-send-email 2.18.0.rc1.1.g6f333ff2f",
        "In-Reply-To": "<20180629015508.26599-1-dg@adax.com>",
        "References": "<20180628224513.18391-1-dg@adax.com>\n\t<20180629015508.26599-1-dg@adax.com>",
        "Subject": "[dpdk-dev] [PATCH v2 05/10] kni: don't run rte_kni_handle_request\n\tafter interface release",
        "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": "Check to ensure that the KNI interface is still in use before accessing\nthe KNI interface FIFOs to kernel space.\n\nThis will help to ensure that the user does not access the KNI\ninterface after rte_kni_release() has been called.\n\nSigned-off-by: Dan Gora <dg@adax.com>\n---\n lib/librte_kni/rte_kni.c | 6 +++++-\n lib/librte_kni/rte_kni.h | 4 ++++\n 2 files changed, 9 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/lib/librte_kni/rte_kni.c b/lib/librte_kni/rte_kni.c\nindex 1d84c0b70..6ef0859bf 100644\n--- a/lib/librte_kni/rte_kni.c\n+++ b/lib/librte_kni/rte_kni.c\n@@ -578,7 +578,11 @@ rte_kni_handle_request(struct rte_kni *kni)\n \tunsigned ret;\n \tstruct rte_kni_request *req;\n \n-\tif (kni == NULL)\n+\t/*\n+\t * Don't touch the req/resp fifos after\n+\t * we've been released, we can be freed at any instant!\n+\t */\n+\tif (kni == NULL || !kni->in_use)\n \t\treturn -1;\n \n \t/* Get request mbuf */\ndiff --git a/lib/librte_kni/rte_kni.h b/lib/librte_kni/rte_kni.h\nindex d1a95f898..94516c38f 100644\n--- a/lib/librte_kni/rte_kni.h\n+++ b/lib/librte_kni/rte_kni.h\n@@ -155,6 +155,10 @@ rte_kni_free(struct rte_kni *kni);\n  * Then analyzes it and calls the specific actions for the specific requests.\n  * Finally constructs the response mbuf and puts it back to the resp_q.\n  *\n+ * Thread Safety: This function should be called in a separate thread from the\n+ * thread which calls rte_kni_release() for this KNI.  This function must not\n+ * be called simultaneously with rte_kni_free().\n+ *\n  * @param kni\n  *  The pointer to the context of an existent KNI interface.\n  *\n",
    "prefixes": [
        "v2",
        "05/10"
    ]
}