get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 80232,
    "url": "http://patches.dpdk.org/api/patches/80232/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20201009220202.20834-4-l.wojciechow@partner.samsung.com/",
    "project": {
        "id": 1,
        "url": "http://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": "<20201009220202.20834-4-l.wojciechow@partner.samsung.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20201009220202.20834-4-l.wojciechow@partner.samsung.com",
    "date": "2020-10-09T22:01:50",
    "name": "[v6,03/15] distributor: do not use oldpkt when not needed",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "33a7578ef45e73a39d2208147884dff9b434d2e4",
    "submitter": {
        "id": 1628,
        "url": "http://patches.dpdk.org/api/people/1628/?format=api",
        "name": "Lukasz Wojciechowski",
        "email": "l.wojciechow@partner.samsung.com"
    },
    "delegate": {
        "id": 24651,
        "url": "http://patches.dpdk.org/api/users/24651/?format=api",
        "username": "dmarchand",
        "first_name": "David",
        "last_name": "Marchand",
        "email": "david.marchand@redhat.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20201009220202.20834-4-l.wojciechow@partner.samsung.com/mbox/",
    "series": [
        {
            "id": 12840,
            "url": "http://patches.dpdk.org/api/series/12840/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=12840",
            "date": "2020-10-09T22:01:47",
            "name": "fix distributor synchronization issues",
            "version": 6,
            "mbox": "http://patches.dpdk.org/series/12840/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/80232/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/80232/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 18C7DA04BC;\n\tSat, 10 Oct 2020 00:03:35 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id DC3921D60E;\n\tSat, 10 Oct 2020 00:02:54 +0200 (CEST)",
            "from mailout1.w1.samsung.com (mailout1.w1.samsung.com\n [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id 22C541D5F2\n for <dev@dpdk.org>; Sat, 10 Oct 2020 00:02:50 +0200 (CEST)",
            "from eucas1p2.samsung.com (unknown [182.198.249.207])\n by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id\n 20201009220238euoutp012780f4e22934dfcd6894b4754196758a~8cgrt9zVz2928229282euoutp01k\n for <dev@dpdk.org>; Fri,  9 Oct 2020 22:02:38 +0000 (GMT)",
            "from eusmges3new.samsung.com (unknown [203.254.199.245]) by\n eucas1p1.samsung.com (KnoxPortal) with ESMTP id\n 20201009220233eucas1p117e7f4720be8459df0c9733ed1500e40~8cgmvnf7C1723217232eucas1p1W;\n Fri,  9 Oct 2020 22:02:33 +0000 (GMT)",
            "from eucas1p2.samsung.com ( [182.198.249.207]) by\n eusmges3new.samsung.com (EUCPMTA) with SMTP id DD.E2.06318.9FDD08F5; Fri,  9\n Oct 2020 23:02:33 +0100 (BST)",
            "from eusmtrp2.samsung.com (unknown [182.198.249.139]) by\n eucas1p2.samsung.com (KnoxPortal) with ESMTPA id\n 20201009220232eucas1p201d3b81574b7ec42ff3fb18f4bbfcbea~8cglozoTP1921319213eucas1p2S;\n Fri,  9 Oct 2020 22:02:32 +0000 (GMT)",
            "from eusmgms1.samsung.com (unknown [182.198.249.179]) by\n eusmtrp2.samsung.com (KnoxPortal) with ESMTP id\n 20201009220232eusmtrp2a7c04bf24cf2c11da0b7d36feb141452~8cgloKEQq1642116421eusmtrp2Z;\n Fri,  9 Oct 2020 22:02:32 +0000 (GMT)",
            "from eusmtip1.samsung.com ( [203.254.199.221]) by\n eusmgms1.samsung.com (EUCPMTA) with SMTP id D2.E2.06314.8FDD08F5; Fri,  9\n Oct 2020 23:02:32 +0100 (BST)",
            "from Padamandas.fritz.box (unknown [106.210.88.70]) by\n eusmtip1.samsung.com (KnoxPortal) with ESMTPA id\n 20201009220231eusmtip1a3b4500e6408000efd622e71583ddac0~8cgk2bDSs1334813348eusmtip1s;\n Fri,  9 Oct 2020 22:02:31 +0000 (GMT)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com\n 20201009220238euoutp012780f4e22934dfcd6894b4754196758a~8cgrt9zVz2928229282euoutp01k",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com;\n s=mail20170921; t=1602280958;\n bh=NXpLZiftAddfs3hsi2CLAhUURHCIw4Q+iTczB/vGCL0=;\n h=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n b=mnkvNtw9Ff0/PbnWvhUO/VY/qMEyOuUEa++EVjTao8NvN+VRDaL5rDDZucRorM6IC\n mZuVbseb6Xnwj8zqs6Xs//sG/j6BRyNWkpQECI5khJ/bgOlmRdlT24K/YtGF5w0qc5\n 06O3K0ZgYHGr7L7qaiSxqVyZd+MjZWv9+8RoXiLM=",
        "X-AuditID": "cbfec7f5-371ff700000018ae-98-5f80ddf937dd",
        "From": "Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>",
        "To": "David Hunt <david.hunt@intel.com>, Bruce Richardson\n <bruce.richardson@intel.com>",
        "Cc": "dev@dpdk.org, l.wojciechow@partner.samsung.com, stable@dpdk.org",
        "Date": "Sat, 10 Oct 2020 00:01:50 +0200",
        "Message-Id": "<20201009220202.20834-4-l.wojciechow@partner.samsung.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20201009220202.20834-1-l.wojciechow@partner.samsung.com>",
        "X-Brightmail-Tracker": [
            "\n H4sIAAAAAAAAA+NgFnrCIsWRmVeSWpSXmKPExsWy7djP87o/7zbEG5xcJmhxY5W9Rd+kj0wW\n 7z5tZ7J41rOO0eJfxx92B1aPXwuWsnos3vOSyePguz1MAcxRXDYpqTmZZalF+nYJXBk71gYX\n PFCp+PRhIWMD4znZLkZODgkBE4kLW06yg9hCAisYJY6fye1i5AKyvzBKzL54jhHC+cwosWJn\n J0sXIwdYx4LFiRDx5YwSO/5fZoJwPjFKNN5rYgUZxSZgK3Fk5lcwW0QgTKK5eS9YM7OAs8ST\n r2wgYWEBD4mOy5+YQcIsAqoS9xeJgIR5BVwlHtz4wgRxnLzE6g0HmEFsTgE3idZdy1hAVkkI\n XGaTOP15KhtEkYvEzdWT2CFsYYlXx7dA2TIS/3fOZ4Jo2MYocfX3T0YIZz+jxPXeFVBV1hKH\n //1mgzhOU2L9Ln2IsKPEuX332CEe5pO48VYQJMwMZE7aNp0ZIswr0dEmBFGtJ/G0ZyojzNo/\n a5+wQNgeEpO+LWeHBM9VRon9zRNYJjDKz0JYtoCRcRWjeGppcW56arFxXmq5XnFibnFpXrpe\n cn7uJkZg3J/+d/zrDsZ9f5IOMQpwMCrx8DYkN8QLsSaWFVfmHmKU4GBWEuF1Ons6Tog3JbGy\n KrUoP76oNCe1+BCjNAeLkjiv8aKXsUIC6YklqdmpqQWpRTBZJg5OqQbGrMonWTvWST9hYbx7\n 3iBn7s+LSl2H+M0Fc4r2ztrvJMwc8vHjrE3nPptkPv3j+2rirwkX9/DNe2d7quFDg2X0Y73v\n qqxNd/ZcmZ9TL7xOc91HvS/dKafUbr7rC3jiZ257gvuRjc2ceWtFDyz8uvjPlYZjWiuL56hd\n fTrj5b5QrmXhJYUXdu39/liJpTgj0VCLuag4EQCLC1HD9wIAAA==",
            "\n H4sIAAAAAAAAA+NgFjrKLMWRmVeSWpSXmKPExsVy+t/xu7o/7jbEGyw8zGJxY5W9Rd+kj0wW\n 7z5tZ7J41rOO0eJfxx92B1aPXwuWsnos3vOSyePguz1MAcxRejZF+aUlqQoZ+cUltkrRhhZG\n eoaWFnpGJpZ6hsbmsVZGpkr6djYpqTmZZalF+nYJehk71gYXPFCp+PRhIWMD4znZLkYODgkB\n E4kFixO7GLk4hASWMkpMv/2SBSIuI/HhkkAXIyeQKSzx51oXG0TNB0aJj81T2UASbAK2Ekdm\n fmUFqRcRCJM4sdIfJMws4C6xZfFUZhBbWMBDouPyJ2aQEhYBVYn7i0RAwrwCrhIPbnxhghgv\n L7F6wwGwck4BN4nWXctYIFY1MkpsOfCSeQIj3wJGhlWMIqmlxbnpucWGesWJucWleel6yfm5\n mxiBQbjt2M/NOxgvbQw+xCjAwajEw6uR2BAvxJpYVlyZe4hRgoNZSYTX6ezpOCHelMTKqtSi\n /Pii0pzU4kOMpkBHTWSWEk3OB0ZIXkm8oamhuYWlobmxubGZhZI4b4fAwRghgfTEktTs1NSC\n 1CKYPiYOTqkGRpENysGWMiJ3zHf3iE5Nfb9MiM/mTHeUzsSPa66se/20q+TEcX6zFx3+lwO3\n fFvO4tBmzfY5uuE0t9fNtXP6nwYtmcgk8mJWfufvCrH7sz2/uF/hla/rqo9+XW397OpXx+AM\n m/gLNj15F5XmuC0VZTlTffZV9QpDQzb37/cazz3KVq42vu7TpMRSnJFoqMVcVJwIAFGOgiBY\n AgAA"
        ],
        "X-CMS-MailID": "20201009220232eucas1p201d3b81574b7ec42ff3fb18f4bbfcbea",
        "X-Msg-Generator": "CA",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "X-RootMTR": "20201009220232eucas1p201d3b81574b7ec42ff3fb18f4bbfcbea",
        "X-EPHeader": "CA",
        "CMS-TYPE": "201P",
        "X-CMS-RootMailID": "20201009220232eucas1p201d3b81574b7ec42ff3fb18f4bbfcbea",
        "References": "<20201008052323.11547-1-l.wojciechow@partner.samsung.com>\n <20201009220202.20834-1-l.wojciechow@partner.samsung.com>\n <CGME20201009220232eucas1p201d3b81574b7ec42ff3fb18f4bbfcbea@eucas1p2.samsung.com>",
        "Subject": "[dpdk-dev] [PATCH v6 03/15] distributor: do not use oldpkt when not\n\tneeded",
        "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": "rte_distributor_request_pkt and rte_distributor_get_pkt dereferenced\noldpkt parameter when in RTE_DIST_ALG_SINGLE even if number\nof returned buffers from worker to distributor was 0.\n\nThis patch passes NULL to the legacy API when number of returned\nbuffers is 0. This allows passing NULL as oldpkt parameter.\n\nDistributor tests are also updated passing NULL as oldpkt and\n0 as number of returned packets, where packets are not returned.\n\nFixes: 775003ad2f96 (\"distributor: add new burst-capable library\")\nCc: david.hunt@intel.com\nCc: stable@dpdk.org\n\nSigned-off-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>\nAcked-by: David Hunt <david.hunt@intel.com>\n---\n app/test/test_distributor.c              | 28 +++++++++---------------\n lib/librte_distributor/rte_distributor.c |  4 ++--\n 2 files changed, 12 insertions(+), 20 deletions(-)",
    "diff": "diff --git a/app/test/test_distributor.c b/app/test/test_distributor.c\nindex ba1f81cf8..52230d250 100644\n--- a/app/test/test_distributor.c\n+++ b/app/test/test_distributor.c\n@@ -62,13 +62,10 @@ handle_work(void *arg)\n \tstruct rte_mbuf *buf[8] __rte_cache_aligned;\n \tstruct worker_params *wp = arg;\n \tstruct rte_distributor *db = wp->dist;\n-\tunsigned int count = 0, num = 0;\n+\tunsigned int count = 0, num;\n \tunsigned int id = __atomic_fetch_add(&worker_idx, 1, __ATOMIC_RELAXED);\n-\tint i;\n \n-\tfor (i = 0; i < 8; i++)\n-\t\tbuf[i] = NULL;\n-\tnum = rte_distributor_get_pkt(db, id, buf, buf, num);\n+\tnum = rte_distributor_get_pkt(db, id, buf, NULL, 0);\n \twhile (!quit) {\n \t\t__atomic_fetch_add(&worker_stats[id].handled_packets, num,\n \t\t\t\t__ATOMIC_RELAXED);\n@@ -272,19 +269,16 @@ handle_work_with_free_mbufs(void *arg)\n \tstruct rte_distributor *d = wp->dist;\n \tunsigned int count = 0;\n \tunsigned int i;\n-\tunsigned int num = 0;\n+\tunsigned int num;\n \tunsigned int id = __atomic_fetch_add(&worker_idx, 1, __ATOMIC_RELAXED);\n \n-\tfor (i = 0; i < 8; i++)\n-\t\tbuf[i] = NULL;\n-\tnum = rte_distributor_get_pkt(d, id, buf, buf, num);\n+\tnum = rte_distributor_get_pkt(d, id, buf, NULL, 0);\n \twhile (!quit) {\n \t\tworker_stats[id].handled_packets += num;\n \t\tcount += num;\n \t\tfor (i = 0; i < num; i++)\n \t\t\trte_pktmbuf_free(buf[i]);\n-\t\tnum = rte_distributor_get_pkt(d,\n-\t\t\t\tid, buf, buf, num);\n+\t\tnum = rte_distributor_get_pkt(d, id, buf, NULL, 0);\n \t}\n \tworker_stats[id].handled_packets += num;\n \tcount += num;\n@@ -342,14 +336,14 @@ handle_work_for_shutdown_test(void *arg)\n \tstruct worker_params *wp = arg;\n \tstruct rte_distributor *d = wp->dist;\n \tunsigned int count = 0;\n-\tunsigned int num = 0;\n+\tunsigned int num;\n \tunsigned int total = 0;\n \tunsigned int i;\n \tunsigned int returned = 0;\n \tconst unsigned int id = __atomic_fetch_add(&worker_idx, 1,\n \t\t\t__ATOMIC_RELAXED);\n \n-\tnum = rte_distributor_get_pkt(d, id, buf, buf, num);\n+\tnum = rte_distributor_get_pkt(d, id, buf, NULL, 0);\n \n \t/* wait for quit single globally, or for worker zero, wait\n \t * for zero_quit */\n@@ -358,8 +352,7 @@ handle_work_for_shutdown_test(void *arg)\n \t\tcount += num;\n \t\tfor (i = 0; i < num; i++)\n \t\t\trte_pktmbuf_free(buf[i]);\n-\t\tnum = rte_distributor_get_pkt(d,\n-\t\t\t\tid, buf, buf, num);\n+\t\tnum = rte_distributor_get_pkt(d, id, buf, NULL, 0);\n \t\ttotal += num;\n \t}\n \tworker_stats[id].handled_packets += num;\n@@ -373,14 +366,13 @@ handle_work_for_shutdown_test(void *arg)\n \t\twhile (zero_quit)\n \t\t\tusleep(100);\n \n-\t\tnum = rte_distributor_get_pkt(d,\n-\t\t\t\tid, buf, buf, num);\n+\t\tnum = rte_distributor_get_pkt(d, id, buf, NULL, 0);\n \n \t\twhile (!quit) {\n \t\t\tworker_stats[id].handled_packets += num;\n \t\t\tcount += num;\n \t\t\trte_pktmbuf_free(pkt);\n-\t\t\tnum = rte_distributor_get_pkt(d, id, buf, buf, num);\n+\t\t\tnum = rte_distributor_get_pkt(d, id, buf, NULL, 0);\n \t\t}\n \t\treturned = rte_distributor_return_pkt(d,\n \t\t\t\tid, buf, num);\ndiff --git a/lib/librte_distributor/rte_distributor.c b/lib/librte_distributor/rte_distributor.c\nindex 12b3db33c..b720abe03 100644\n--- a/lib/librte_distributor/rte_distributor.c\n+++ b/lib/librte_distributor/rte_distributor.c\n@@ -42,7 +42,7 @@ rte_distributor_request_pkt(struct rte_distributor *d,\n \n \tif (unlikely(d->alg_type == RTE_DIST_ALG_SINGLE)) {\n \t\trte_distributor_request_pkt_single(d->d_single,\n-\t\t\tworker_id, oldpkt[0]);\n+\t\t\tworker_id, count ? oldpkt[0] : NULL);\n \t\treturn;\n \t}\n \n@@ -134,7 +134,7 @@ rte_distributor_get_pkt(struct rte_distributor *d,\n \tif (unlikely(d->alg_type == RTE_DIST_ALG_SINGLE)) {\n \t\tif (return_count <= 1) {\n \t\t\tpkts[0] = rte_distributor_get_pkt_single(d->d_single,\n-\t\t\t\tworker_id, oldpkt[0]);\n+\t\t\t\tworker_id, return_count ? oldpkt[0] : NULL);\n \t\t\treturn (pkts[0]) ? 1 : 0;\n \t\t} else\n \t\t\treturn -EINVAL;\n",
    "prefixes": [
        "v6",
        "03/15"
    ]
}