get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 76182,
    "url": "http://patches.dpdk.org/api/patches/76182/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20200831213811.21521-1-dmitry.kozliuk@gmail.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": "<20200831213811.21521-1-dmitry.kozliuk@gmail.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200831213811.21521-1-dmitry.kozliuk@gmail.com",
    "date": "2020-08-31T21:38:11",
    "name": "rcu: avoid literal suffix warning in C++ mode",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "d6493838a646af1b92574116a0a0a83f1641f861",
    "submitter": {
        "id": 1581,
        "url": "http://patches.dpdk.org/api/people/1581/?format=api",
        "name": "Dmitry Kozlyuk",
        "email": "dmitry.kozliuk@gmail.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20200831213811.21521-1-dmitry.kozliuk@gmail.com/mbox/",
    "series": [
        {
            "id": 11861,
            "url": "http://patches.dpdk.org/api/series/11861/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=11861",
            "date": "2020-08-31T21:38:11",
            "name": "rcu: avoid literal suffix warning in C++ mode",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/11861/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/76182/comments/",
    "check": "warning",
    "checks": "http://patches.dpdk.org/api/patches/76182/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 60050A04AC;\n\tMon, 31 Aug 2020 23:38:24 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 376221C0BE;\n\tMon, 31 Aug 2020 23:38:23 +0200 (CEST)",
            "from mail-lj1-f193.google.com (mail-lj1-f193.google.com\n [209.85.208.193]) by dpdk.org (Postfix) with ESMTP id 5C1911C0BD;\n Mon, 31 Aug 2020 23:38:21 +0200 (CEST)",
            "by mail-lj1-f193.google.com with SMTP id w14so8457482ljj.4;\n Mon, 31 Aug 2020 14:38:21 -0700 (PDT)",
            "from localhost.localdomain (broadband-37-110-65-23.ip.moscow.rt.ru.\n [37.110.65.23])\n by smtp.gmail.com with ESMTPSA id v5sm1803692ljh.73.2020.08.31.14.38.19\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Mon, 31 Aug 2020 14:38:19 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n h=from:to:cc:subject:date:message-id:mime-version\n :content-transfer-encoding;\n bh=k7eIcKFodHPSC3NjAXsycbfXRbqMlxk5IIp8lzhwCFM=;\n b=NVSKY4bZ3mxdwYahUQgUoBFJj9oNPyPaCD4Q1Q3GQqwoBMPZaSOEoPMRMzTHRslcnf\n e03MgWKJCMaY6vzLwttNvI//k2PhXUKEdsiAsfjod2QxFEsYS7jBtxXl8DkK3QO3NMM4\n A1H1sVhQfWIqo3kjKJfN9xebXvbKJeszfo4BF5IrAOOlVp9UBgOM+5dAmwcaZnghu53Q\n bdKBljz26w1qvf8zj8vhffotBKg8ewFfJEMk/aVnVm6+w+mmz+GxWcVs2eaHDA90Jtth\n J/JLURhZn4A0VBOD3ZH6eFxC67kCmd++rT/6/aowWmruVpiZxU5fX4Qs/Jx127Ez/TB4\n yUtA==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20161025;\n h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version\n :content-transfer-encoding;\n bh=k7eIcKFodHPSC3NjAXsycbfXRbqMlxk5IIp8lzhwCFM=;\n b=tOpemDAvZasskIpj7m2fQIO7RA4KcqijOVm5rSezu3gS5MH10Weqb+ODWgcY1dQqDZ\n muobZIX5ytCtwZgX1tnib3JEysZovdpV3E458l3aMZk6DU1A8r/ABy0VRSQ1XCmAjHvm\n Xzb01UQu1hub+Q0+yzcvEnOBjBGwduom7JAW3nPdBs1KU6cgGzi16ljUBmENAYvNwuvW\n X0eM/FNNRUVsO3sLor2qyY4NJScfsZelA03W0+TResbbYg8NYqWho3Xwy+uJvzZ9cInF\n 6iFBY6mYha5Ri4dyGYZq+vKRJZ2p+6D64TgAGKymPrsvyBGyGoQP2suNwAOe1JdUSaZ0\n UexA==",
        "X-Gm-Message-State": "AOAM532J1KefOOn7zqj63eJYkhSVU/r+G3vkP9pT427BXQIgkRw19SEh\n n0+38Z8e6TG0IY7CLt9nn47tYIGuGgHLfQ==",
        "X-Google-Smtp-Source": "\n ABdhPJz04WPGkpR7/ZMwFYuyLNsiz6KHZVVzLa1bCmd3SgXaKEiGUIuv5xnM+q3ZIil5Qw/HkE86SA==",
        "X-Received": "by 2002:a05:651c:1119:: with SMTP id\n d25mr1339687ljo.300.1598909900469;\n Mon, 31 Aug 2020 14:38:20 -0700 (PDT)",
        "From": "Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>",
        "To": "dev@dpdk.org",
        "Cc": "Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>, stable@dpdk.org,\n Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>",
        "Date": "Tue,  1 Sep 2020 00:38:11 +0300",
        "Message-Id": "<20200831213811.21521-1-dmitry.kozliuk@gmail.com>",
        "X-Mailer": "git-send-email 2.25.4",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH] rcu: avoid literal suffix warning in C++ mode",
        "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": "Sequences like \"value = %\"PRIu64 (no space before PRIu64) are parsed as\na single preprocessor token, user-defined-string-literal, in C++11\nonwards. While modern compilers are smart enough to parse this properly,\nGCC 9.3.0 generates warnings like:\n\n    rte_rcu_qsbr.h:555:26: warning: invalid suffix on literal; C++11\n    requires a space between literal and string macro [-Wliteral-suffix]\n\nAdd spaces around format specifier macros to make public headers\ncompatible with C++ without causing warnings.\n\nFixes: 64994b56c (\"rcu: add RCU library supporting QSBR mechanism\")\nCc: stable@dpdk.org\n\nSigned-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>\n---\n lib/librte_rcu/rte_rcu_qsbr.h | 14 +++++++-------\n 1 file changed, 7 insertions(+), 7 deletions(-)",
    "diff": "diff --git a/lib/librte_rcu/rte_rcu_qsbr.h b/lib/librte_rcu/rte_rcu_qsbr.h\nindex a98e8f0f8..aa237cf75 100644\n--- a/lib/librte_rcu/rte_rcu_qsbr.h\n+++ b/lib/librte_rcu/rte_rcu_qsbr.h\n@@ -552,7 +552,7 @@ rte_rcu_qsbr_quiescent(struct rte_rcu_qsbr *v, unsigned int thread_id)\n \t\t__atomic_store_n(&v->qsbr_cnt[thread_id].cnt,\n \t\t\t\t\t t, __ATOMIC_RELEASE);\n \n-\t__RTE_RCU_DP_LOG(DEBUG, \"%s: update: token = %\"PRIu64\", Thread ID = %d\",\n+\t__RTE_RCU_DP_LOG(DEBUG, \"%s: update: token = %\" PRIu64 \", Thread ID = %d\",\n \t\t__func__, t, thread_id);\n }\n \n@@ -580,13 +580,13 @@ __rte_rcu_qsbr_check_selective(struct rte_rcu_qsbr *v, uint64_t t, bool wait)\n \t\twhile (bmap) {\n \t\t\tj = __builtin_ctzl(bmap);\n \t\t\t__RTE_RCU_DP_LOG(DEBUG,\n-\t\t\t\t\"%s: check: token = %\"PRIu64\", wait = %d, Bit Map = 0x%\"PRIx64\", Thread ID = %d\",\n+\t\t\t\t\"%s: check: token = %\" PRIu64 \", wait = %d, Bit Map = 0x%\" PRIx64 \", Thread ID = %d\",\n \t\t\t\t__func__, t, wait, bmap, id + j);\n \t\t\tc = __atomic_load_n(\n \t\t\t\t\t&v->qsbr_cnt[id + j].cnt,\n \t\t\t\t\t__ATOMIC_ACQUIRE);\n \t\t\t__RTE_RCU_DP_LOG(DEBUG,\n-\t\t\t\t\"%s: status: token = %\"PRIu64\", wait = %d, Thread QS cnt = %\"PRIu64\", Thread ID = %d\",\n+\t\t\t\t\"%s: status: token = %\" PRIu64 \", wait = %d, Thread QS cnt = %\" PRIu64 \", Thread ID = %d\",\n \t\t\t\t__func__, t, wait, c, id+j);\n \n \t\t\t/* Counter is not checked for wrap-around condition\n@@ -643,12 +643,12 @@ __rte_rcu_qsbr_check_all(struct rte_rcu_qsbr *v, uint64_t t, bool wait)\n \n \tfor (i = 0, cnt = v->qsbr_cnt; i < v->max_threads; i++, cnt++) {\n \t\t__RTE_RCU_DP_LOG(DEBUG,\n-\t\t\t\"%s: check: token = %\"PRIu64\", wait = %d, Thread ID = %d\",\n+\t\t\t\"%s: check: token = %\" PRIu64 \", wait = %d, Thread ID = %d\",\n \t\t\t__func__, t, wait, i);\n \t\twhile (1) {\n \t\t\tc = __atomic_load_n(&cnt->cnt, __ATOMIC_ACQUIRE);\n \t\t\t__RTE_RCU_DP_LOG(DEBUG,\n-\t\t\t\t\"%s: status: token = %\"PRIu64\", wait = %d, Thread QS cnt = %\"PRIu64\", Thread ID = %d\",\n+\t\t\t\t\"%s: status: token = %\" PRIu64 \", wait = %d, Thread QS cnt = %\" PRIu64 \", Thread ID = %d\",\n \t\t\t\t__func__, t, wait, c, i);\n \n \t\t\t/* Counter is not checked for wrap-around condition\n@@ -725,10 +725,10 @@ rte_rcu_qsbr_check(struct rte_rcu_qsbr *v, uint64_t t, bool wait)\n \t/* Check if all the readers have already acknowledged this token */\n \tif (likely(t <= v->acked_token)) {\n \t\t__RTE_RCU_DP_LOG(DEBUG,\n-\t\t\t\"%s: check: token = %\"PRIu64\", wait = %d\",\n+\t\t\t\"%s: check: token = %\" PRIu64 \", wait = %d\",\n \t\t\t__func__, t, wait);\n \t\t__RTE_RCU_DP_LOG(DEBUG,\n-\t\t\t\"%s: status: least acked token = %\"PRIu64\"\",\n+\t\t\t\"%s: status: least acked token = %\" PRIu64,\n \t\t\t__func__, v->acked_token);\n \t\treturn 1;\n \t}\n",
    "prefixes": []
}