get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 48079,
    "url": "http://patchwork.dpdk.org/api/patches/48079/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/f8362c958fca09089f86b6b44e123b5298a24c5d.1542204718.git.anatoly.burakov@intel.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": "<f8362c958fca09089f86b6b44e123b5298a24c5d.1542204718.git.anatoly.burakov@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/f8362c958fca09089f86b6b44e123b5298a24c5d.1542204718.git.anatoly.burakov@intel.com",
    "date": "2018-11-14T14:51:53",
    "name": "malloc: fix adjacency check to also include segment list",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "2befe6a32d12e90446a55735de45783098e52433",
    "submitter": {
        "id": 4,
        "url": "http://patchwork.dpdk.org/api/people/4/?format=api",
        "name": "Anatoly Burakov",
        "email": "anatoly.burakov@intel.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/f8362c958fca09089f86b6b44e123b5298a24c5d.1542204718.git.anatoly.burakov@intel.com/mbox/",
    "series": [
        {
            "id": 2420,
            "url": "http://patchwork.dpdk.org/api/series/2420/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=2420",
            "date": "2018-11-14T14:51:53",
            "name": "malloc: fix adjacency check to also include segment list",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/2420/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/48079/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/48079/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 D1DE61B136;\n\tWed, 14 Nov 2018 15:51:57 +0100 (CET)",
            "from mga03.intel.com (mga03.intel.com [134.134.136.65])\n\tby dpdk.org (Postfix) with ESMTP id BFD3A1B12B;\n\tWed, 14 Nov 2018 15:51:56 +0100 (CET)",
            "from orsmga005.jf.intel.com ([10.7.209.41])\n\tby orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t14 Nov 2018 06:51:55 -0800",
            "from irvmail001.ir.intel.com ([163.33.26.43])\n\tby orsmga005.jf.intel.com with ESMTP; 14 Nov 2018 06:51:54 -0800",
            "from sivswdev01.ir.intel.com (sivswdev01.ir.intel.com\n\t[10.237.217.45])\n\tby irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id\n\twAEEps3F000633; Wed, 14 Nov 2018 14:51:54 GMT",
            "from sivswdev01.ir.intel.com (localhost [127.0.0.1])\n\tby sivswdev01.ir.intel.com with ESMTP id wAEEpr9g008480;\n\tWed, 14 Nov 2018 14:51:53 GMT",
            "(from aburakov@localhost)\n\tby sivswdev01.ir.intel.com with LOCAL id wAEEpriV008472;\n\tWed, 14 Nov 2018 14:51:53 GMT"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.56,232,1539673200\"; d=\"scan'208\";a=\"273949955\"",
        "From": "Anatoly Burakov <anatoly.burakov@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "yuwei1.zhang@intel.com, stable@dpdk.org",
        "Date": "Wed, 14 Nov 2018 14:51:53 +0000",
        "Message-Id": "<f8362c958fca09089f86b6b44e123b5298a24c5d.1542204718.git.anatoly.burakov@intel.com>",
        "X-Mailer": "git-send-email 1.7.0.7",
        "Subject": "[dpdk-dev] [PATCH] malloc: fix adjacency check to also include\n\tsegment list",
        "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": "It may so happen that two memory locations may be adjacent in\nvirtual memory, but belong to different segment lists. With\ncurrent code, such segments will be concatenated. Fix the\nadjacency checking code to also check if the adjacent malloc\nelements belong to the same memseg list.\n\nFixes: 66cc45e293ed (\"mem: replace memseg with memseg lists\")\n\nCc: stable@dpdk.org\n\nSigned-off-by: Anatoly Burakov <anatoly.burakov@intel.com>\n---\n lib/librte_eal/common/malloc_elem.c | 6 ++++--\n 1 file changed, 4 insertions(+), 2 deletions(-)",
    "diff": "diff --git a/lib/librte_eal/common/malloc_elem.c b/lib/librte_eal/common/malloc_elem.c\nindex 1a74660de..c302be305 100644\n--- a/lib/librte_eal/common/malloc_elem.c\n+++ b/lib/librte_eal/common/malloc_elem.c\n@@ -316,13 +316,15 @@ remove_elem(struct malloc_elem *elem)\n static int\n next_elem_is_adjacent(struct malloc_elem *elem)\n {\n-\treturn elem->next == RTE_PTR_ADD(elem, elem->size);\n+\treturn elem->next == RTE_PTR_ADD(elem, elem->size) &&\n+\t\t\telem->next->msl == elem->msl;\n }\n \n static int\n prev_elem_is_adjacent(struct malloc_elem *elem)\n {\n-\treturn elem == RTE_PTR_ADD(elem->prev, elem->prev->size);\n+\treturn elem == RTE_PTR_ADD(elem->prev, elem->prev->size) &&\n+\t\t\telem->prev->msl && elem->msl;\n }\n \n /*\n",
    "prefixes": []
}