get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2217,
    "url": "https://patches.dpdk.org/api/patches/2217/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1420635809-30976-3-git-send-email-david.marchand@6wind.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": "<1420635809-30976-3-git-send-email-david.marchand@6wind.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1420635809-30976-3-git-send-email-david.marchand@6wind.com",
    "date": "2015-01-07T13:03:29",
    "name": "[dpdk-dev,2/2] devargs: remove limit on parameters length",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "a7af18f62076d75dc03efa7bf7dce1d39a43312a",
    "submitter": {
        "id": 3,
        "url": "https://patches.dpdk.org/api/people/3/?format=api",
        "name": "David Marchand",
        "email": "david.marchand@6wind.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1420635809-30976-3-git-send-email-david.marchand@6wind.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/2217/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/2217/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 [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id 911FD5A6F;\n\tWed,  7 Jan 2015 14:03:41 +0100 (CET)",
            "from mail-wi0-f169.google.com (mail-wi0-f169.google.com\n\t[209.85.212.169]) by dpdk.org (Postfix) with ESMTP id 244C15A6A\n\tfor <dev@dpdk.org>; Wed,  7 Jan 2015 14:03:39 +0100 (CET)",
            "by mail-wi0-f169.google.com with SMTP id r20so8007036wiv.4\n\tfor <dev@dpdk.org>; Wed, 07 Jan 2015 05:03:39 -0800 (PST)",
            "from alcyon.dev.6wind.com (guy78-3-82-239-227-177.fbx.proxad.net.\n\t[82.239.227.177]) by mx.google.com with ESMTPSA id\n\teu8sm2476343wib.21.2015.01.07.05.03.37 for <dev@dpdk.org>\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tWed, 07 Jan 2015 05:03:38 -0800 (PST)"
        ],
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20130820;\n\th=x-gm-message-state:from:to:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=XVFfZ75SF94EkKVww/eWzomBXShB7by0RJuSU1EkBNM=;\n\tb=iFWZSirnFsRWm6iqkNhzfG830c2Rfeue16TmxnxED3xpq2F6Fakp0PkVCVBtMo/zQR\n\tK9My9vF3ewXISesNKGctD3E/O/MsowH8q+fzn3+MI/PIKbdUURPAdVEPOVCIU3N5CxSE\n\tFWFHXGeRWxQfzNqesB/8tFhjBYxs7b9IcwQDpX3UbiLM1Z0iu8VacgCBVSYA8mvNXJMl\n\t8i/3euMx82kR7PH/M5j26XU2AvdK8FAr4h5iaXv5WHL+FwX6Sj50eKVF5ET0n4cS+bNl\n\tobgg3RcWv3shKybE1dwmitQYUJaoisG1TNkUBIBNnFmKxV0R5G4BMV30whjl7nJMbC7H\n\thlKg==",
        "X-Gm-Message-State": "ALoCoQl7U7v3Q9S+283CK1yVderNTmqWo53fl52RzHZNuYtQ0X1o1rKkl2oelc4b2TS7XC4YsY/M",
        "X-Received": "by 10.180.93.167 with SMTP id cv7mr7525201wib.12.1420635818976; \n\tWed, 07 Jan 2015 05:03:38 -0800 (PST)",
        "From": "David Marchand <david.marchand@6wind.com>",
        "To": "dev@dpdk.org",
        "Date": "Wed,  7 Jan 2015 14:03:29 +0100",
        "Message-Id": "<1420635809-30976-3-git-send-email-david.marchand@6wind.com>",
        "X-Mailer": "git-send-email 1.7.10.4",
        "In-Reply-To": "<1420635809-30976-1-git-send-email-david.marchand@6wind.com>",
        "References": "<1420635809-30976-1-git-send-email-david.marchand@6wind.com>",
        "Subject": "[dpdk-dev] [PATCH 2/2] devargs: remove limit on parameters length",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "patches and discussions about DPDK <dev.dpdk.org>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "As far as I know, there is no reason why we should have a limit on the length of\nparameters that can be given for a device.\nRemove this limit by using dynamic allocations.\n\nSigned-off-by: David Marchand <david.marchand@6wind.com>\n---\n lib/librte_eal/common/eal_common_devargs.c  |   26 +++++++++++++++++---------\n lib/librte_eal/common/include/rte_devargs.h |    4 ++--\n 2 files changed, 19 insertions(+), 11 deletions(-)",
    "diff": "diff --git a/lib/librte_eal/common/eal_common_devargs.c b/lib/librte_eal/common/eal_common_devargs.c\nindex 8c9b31a..3aace08 100644\n--- a/lib/librte_eal/common/eal_common_devargs.c\n+++ b/lib/librte_eal/common/eal_common_devargs.c\n@@ -49,17 +49,10 @@ int\n rte_eal_devargs_add(enum rte_devtype devtype, const char *devargs_str)\n {\n \tstruct rte_devargs *devargs = NULL;\n-\tchar buf[RTE_DEVARGS_LEN];\n+\tchar *buf = NULL;\n \tchar *sep;\n \tint ret;\n \n-\tret = snprintf(buf, sizeof(buf), \"%s\", devargs_str);\n-\tif (ret < 0 || ret >= (int)sizeof(buf)) {\n-\t\tRTE_LOG(ERR, EAL, \"user device args too large: <%s>\\n\",\n-\t\t\tdevargs_str);\n-\t\tgoto fail;\n-\t}\n-\n \t/* use malloc instead of rte_malloc as it's called early at init */\n \tdevargs = malloc(sizeof(*devargs));\n \tif (devargs == NULL) {\n@@ -69,11 +62,21 @@ rte_eal_devargs_add(enum rte_devtype devtype, const char *devargs_str)\n \tmemset(devargs, 0, sizeof(*devargs));\n \tdevargs->type = devtype;\n \n+\tbuf = strdup(devargs_str);\n+\tif (buf == NULL) {\n+\t\tRTE_LOG(ERR, EAL, \"cannot allocate temp memory for devargs\\n\");\n+\t\tgoto fail;\n+\t}\n+\n \t/* set the first ',' to '\\0' to split name and arguments */\n \tsep = strchr(buf, ',');\n \tif (sep != NULL) {\n \t\tsep[0] = '\\0';\n-\t\tsnprintf(devargs->args, sizeof(devargs->args), \"%s\", sep + 1);\n+\t\tdevargs->args = strdup(sep + 1);\n+\t\tif (devargs->args == NULL) {\n+\t\t\tRTE_LOG(ERR, EAL, \"cannot allocate for devargs args\\n\");\n+\t\t\tgoto fail;\n+\t\t}\n \t}\n \n \tswitch (devargs->type) {\n@@ -97,10 +100,15 @@ rte_eal_devargs_add(enum rte_devtype devtype, const char *devargs_str)\n \t\tbreak;\n \t}\n \n+\tfree(buf);\n \tTAILQ_INSERT_TAIL(&devargs_list, devargs, next);\n \treturn 0;\n \n fail:\n+\tif (devargs->args)\n+\t\tfree(devargs->args);\n+\tif (buf)\n+\t\tfree(buf);\n \tif (devargs)\n \t\tfree(devargs);\n \treturn -1;\ndiff --git a/lib/librte_eal/common/include/rte_devargs.h b/lib/librte_eal/common/include/rte_devargs.h\nindex 9f9c98f..996e180 100644\n--- a/lib/librte_eal/common/include/rte_devargs.h\n+++ b/lib/librte_eal/common/include/rte_devargs.h\n@@ -88,8 +88,8 @@ struct rte_devargs {\n \t\t\tchar drv_name[32];\n \t\t} virtual;\n \t};\n-#define RTE_DEVARGS_LEN 256\n-\tchar args[RTE_DEVARGS_LEN]; /**< Arguments string as given by user. */\n+\t/** Arguments string as given by user. */\n+\tchar *args;\n };\n \n /** user device double-linked queue type definition */\n",
    "prefixes": [
        "dpdk-dev",
        "2/2"
    ]
}