get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 43196,
    "url": "http://patchwork.dpdk.org/api/patches/43196/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/038143a314345e9c5bf76b1287497a5c4c9f63ed.1531992860.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": "<038143a314345e9c5bf76b1287497a5c4c9f63ed.1531992860.git.anatoly.burakov@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/038143a314345e9c5bf76b1287497a5c4c9f63ed.1531992860.git.anatoly.burakov@intel.com",
    "date": "2018-07-19T09:42:46",
    "name": "malloc: don't skip pad on free",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "122316b4167fe93464e00f98b612c4b76612c725",
    "submitter": {
        "id": 4,
        "url": "http://patchwork.dpdk.org/api/people/4/?format=api",
        "name": "Anatoly Burakov",
        "email": "anatoly.burakov@intel.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/038143a314345e9c5bf76b1287497a5c4c9f63ed.1531992860.git.anatoly.burakov@intel.com/mbox/",
    "series": [
        {
            "id": 664,
            "url": "http://patchwork.dpdk.org/api/series/664/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=664",
            "date": "2018-07-19T09:42:46",
            "name": "malloc: don't skip pad on free",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/664/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/43196/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/43196/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 42D7134EF;\n\tThu, 19 Jul 2018 11:43:15 +0200 (CEST)",
            "from mga02.intel.com (mga02.intel.com [134.134.136.20])\n\tby dpdk.org (Postfix) with ESMTP id 63089326D;\n\tThu, 19 Jul 2018 11:43:13 +0200 (CEST)",
            "from fmsmga007.fm.intel.com ([10.253.24.52])\n\tby orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t19 Jul 2018 02:43:07 -0700",
            "from irvmail001.ir.intel.com ([163.33.26.43])\n\tby fmsmga007.fm.intel.com with ESMTP; 19 Jul 2018 02:42:47 -0700",
            "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\tw6J9gkrX004532; Thu, 19 Jul 2018 10:42:46 +0100",
            "from sivswdev01.ir.intel.com (localhost [127.0.0.1])\n\tby sivswdev01.ir.intel.com with ESMTP id w6J9gkhX010910;\n\tThu, 19 Jul 2018 10:42:46 +0100",
            "(from aburakov@localhost)\n\tby sivswdev01.ir.intel.com with LOCAL id w6J9gkqa010906;\n\tThu, 19 Jul 2018 10:42:46 +0100"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.51,374,1526367600\"; d=\"scan'208\";a=\"55528552\"",
        "From": "Anatoly Burakov <anatoly.burakov@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "arybchenko@solarflare.com, stephen@networkplumber.org,\n\tthomas@monjalon.net, stable@dpdk.org",
        "Date": "Thu, 19 Jul 2018 10:42:46 +0100",
        "Message-Id": "<038143a314345e9c5bf76b1287497a5c4c9f63ed.1531992860.git.anatoly.burakov@intel.com>",
        "X-Mailer": "git-send-email 1.7.0.7",
        "Subject": "[dpdk-dev] [PATCH] malloc: don't skip pad on free",
        "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": "Previously, we were skipping erasing pad because we were\nexpecting it to be freed when we were merging adjacent\nsegments. However, if there were no adjacent segments to\nmerge, we would've skipped erasing the pad, leaving non-zero\nmemory in our free space.\n\nFix this by including pad in the erasing unconditionally.\n\nFixes: e43a9f52b7ff (\"malloc: fix pad erasing\")\nCc: stable@dpdk.org\n\nReported-by: Andrew Rybchenko <arybchenko@solarflare.com>\n\nSigned-off-by: Anatoly Burakov <anatoly.burakov@intel.com>\n---\n\nNotes:\n    I have confirmed the issue with unit tests - adding a simple zero-check\n    function on alloc will throw errors when running malloc_autotest on\n    latest master, but the errors go away once this patch is applied.\n    \n    Our unit test's zmalloc calls check if memory is not zero, but this\n    condition is rare enough not to be triggered by it, and regular\n    malloc calls aren't checked on zeroed out memory. The bulk of the\n    malloc calls in the unit tests are malloc, not zmalloc, so pretty\n    much all of the time the memory is not checked for being zero on\n    alloc.\n\n lib/librte_eal/common/malloc_elem.c | 4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)",
    "diff": "diff --git a/lib/librte_eal/common/malloc_elem.c b/lib/librte_eal/common/malloc_elem.c\nindex efcb82677..e0a8ed15b 100644\n--- a/lib/librte_eal/common/malloc_elem.c\n+++ b/lib/librte_eal/common/malloc_elem.c\n@@ -519,8 +519,8 @@ malloc_elem_free(struct malloc_elem *elem)\n \tvoid *ptr;\n \tsize_t data_len;\n \n-\tptr = RTE_PTR_ADD(elem, MALLOC_ELEM_HEADER_LEN + elem->pad);\n-\tdata_len = elem->size - elem->pad - MALLOC_ELEM_OVERHEAD;\n+\tptr = RTE_PTR_ADD(elem, MALLOC_ELEM_HEADER_LEN);\n+\tdata_len = elem->size - MALLOC_ELEM_OVERHEAD;\n \n \telem = malloc_elem_join_adjacent_free(elem);\n \n",
    "prefixes": []
}