get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 99625,
    "url": "http://patches.dpdk.org/api/patches/99625/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20210924152202.7592-4-stephen@networkplumber.org/",
    "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": "<20210924152202.7592-4-stephen@networkplumber.org>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210924152202.7592-4-stephen@networkplumber.org",
    "date": "2021-09-24T15:21:53",
    "name": "[v11,03/12] bpf: allow self-xor operation",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "b234103a6fd67416c0365eb89ccda8c53285d6d4",
    "submitter": {
        "id": 27,
        "url": "http://patches.dpdk.org/api/people/27/?format=api",
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org"
    },
    "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/20210924152202.7592-4-stephen@networkplumber.org/mbox/",
    "series": [
        {
            "id": 19146,
            "url": "http://patches.dpdk.org/api/series/19146/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=19146",
            "date": "2021-09-24T15:21:50",
            "name": "Packet capture framework enhancements",
            "version": 11,
            "mbox": "http://patches.dpdk.org/series/19146/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/99625/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/99625/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 mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 24774A0548;\n\tFri, 24 Sep 2021 17:22:30 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 1A6624133B;\n\tFri, 24 Sep 2021 17:22:21 +0200 (CEST)",
            "from mail-pl1-f175.google.com (mail-pl1-f175.google.com\n [209.85.214.175])\n by mails.dpdk.org (Postfix) with ESMTP id 5319541326\n for <dev@dpdk.org>; Fri, 24 Sep 2021 17:22:14 +0200 (CEST)",
            "by mail-pl1-f175.google.com with SMTP id j15so5279598plh.7\n for <dev@dpdk.org>; Fri, 24 Sep 2021 08:22:14 -0700 (PDT)",
            "from hermes.local (204-195-33-123.wavecable.com. [204.195.33.123])\n by smtp.gmail.com with ESMTPSA id v2sm8587493pje.15.2021.09.24.08.22.10\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Fri, 24 Sep 2021 08:22:11 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=networkplumber-org.20210112.gappssmtp.com; s=20210112;\n h=from:to:cc:subject:date:message-id:in-reply-to:references\n :mime-version:content-transfer-encoding;\n bh=erHA10QBvEPMIbVt+G0y/6YMrkQ0owEAYa4+5XVFXzM=;\n b=S4/YDTOu2tyYjCeIN8Fd4Vhli6VANSY3huhBm7JzCt/XLGHqnCZvhJIpHX/hnf74xP\n 0jqkvbsNNAzzVBuNKE/zWCym3XdfioICNp785N2z6HIsipmjjeHqd75KT5Tpf4JWPdMw\n nOs9jWkTcg/33oI8EdRo1MhXBQScfO5P1vXGkwmwK6SNmUyEmqKADgiWCYZp+mmk4dMz\n ogM7Vf3lzi/2iWSLJCkDVqj6myYzJiKNepghKVRlxuBoghq2mpu7UiQGhBOcI3UpPAlj\n c24MJoEk6aWJhwVWRgAQrpSoOdeasCEkLeaVtgx5KhVjySMlRnlc0Q34H2BKHQOe7Afp\n 3TkQ==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20210112;\n h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n :references:mime-version:content-transfer-encoding;\n bh=erHA10QBvEPMIbVt+G0y/6YMrkQ0owEAYa4+5XVFXzM=;\n b=OrunCHXzy6OcJgO28XG5f1TEY7x0JWGEFZKUottsO4yVJm9nv/QoAQJq5K6M4ZJsmC\n jN3SrsjQimN3Nd2EYekAZXxYCtHCKpixcrLPRuesGekSnObgrZl/bdquwZJiPGGTxfkN\n f2lhozBkEFCKYbboHN5KNXIOQ0xvE9yosCzE261opAcAEt459kJJhEIL0Z6AYcx/nJKM\n d6/SxhNtDPVdNFRA8R8puhhTsN4GhsIZYQllUX7K4mHZot8QJRn9Ob5X4PybrpKIBUcq\n y1GI60gyUukt/Ww7CjVp6a35k1LbTEKDDy51YMSJ9gjw0RfJYTR/KR/u5f0k16RRv6r5\n TXmA==",
        "X-Gm-Message-State": "AOAM533CxiV9m7sjSie+pxOFpvX8IpWMq9n5/zQ/lChv79fuEbDQpA2Y\n FvLFkkaFtVbZFD4e5JwllH+NyJ+FmFeljQ==",
        "X-Google-Smtp-Source": "\n ABdhPJxiNPjBTDHXrOvuM4mKhg3OC/wFkCNPKrjdroMMCiBOhkP0H5jlE6sw3CPMEnlkpAO5+iADDA==",
        "X-Received": "by 2002:a17:90a:ba12:: with SMTP id\n s18mr2918249pjr.60.1632496932933;\n Fri, 24 Sep 2021 08:22:12 -0700 (PDT)",
        "From": "Stephen Hemminger <stephen@networkplumber.org>",
        "To": "dev@dpdk.org",
        "Cc": "Stephen Hemminger <stephen@networkplumber.org>,\n Konstantin Ananyev <konstantin.ananyev@intel.com>",
        "Date": "Fri, 24 Sep 2021 08:21:53 -0700",
        "Message-Id": "<20210924152202.7592-4-stephen@networkplumber.org>",
        "X-Mailer": "git-send-email 2.30.2",
        "In-Reply-To": "<20210924152202.7592-1-stephen@networkplumber.org>",
        "References": "<20210903004732.109023-1-stephen@networkplumber.org>\n <20210924152202.7592-1-stephen@networkplumber.org>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v11 03/12] bpf: allow self-xor operation",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "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": "Some BPF programs may use XOR of a register with itself\nas a way to zero register in one instruction.\nThe BPF filter converter generates this in the prolog\nto the generated code.\n\nThe BPF validator would not allow this because the value of\nregister was undefined. But after this operation it always zero.\n\nFixes: 8021917293d0 (\"bpf: add extra validation for input BPF program\")\nAcked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>\nSigned-off-by: Stephen Hemminger <stephen@networkplumber.org>\n---\n lib/bpf/bpf_validate.c | 9 ++++++++-\n 1 file changed, 8 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/lib/bpf/bpf_validate.c b/lib/bpf/bpf_validate.c\nindex 7b1291b382e9..853279fee557 100644\n--- a/lib/bpf/bpf_validate.c\n+++ b/lib/bpf/bpf_validate.c\n@@ -661,8 +661,15 @@ eval_alu(struct bpf_verifier *bvf, const struct ebpf_insn *ins)\n \n \top = BPF_OP(ins->code);\n \n+\t/* Allow self-xor as way to zero register */\n+\tif (op == BPF_XOR && BPF_SRC(ins->code) == BPF_X &&\n+\t    ins->src_reg == ins->dst_reg) {\n+\t\teval_fill_imm(&rs, UINT64_MAX, 0);\n+\t\teval_fill_imm(rd, UINT64_MAX, 0);\n+\t}\n+\n \terr = eval_defined((op != EBPF_MOV) ? rd : NULL,\n-\t\t\t(op != BPF_NEG) ? &rs : NULL);\n+\t\t\t   (op != BPF_NEG) ? &rs : NULL);\n \tif (err != NULL)\n \t\treturn err;\n \n",
    "prefixes": [
        "v11",
        "03/12"
    ]
}