get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2195951,
    "url": "http://patchwork.ozlabs.org/api/patches/2195951/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260212140917.1443253-5-peter.maydell@linaro.org/",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api",
        "name": "QEMU Development",
        "link_name": "qemu-devel",
        "list_id": "qemu-devel.nongnu.org",
        "list_email": "qemu-devel@nongnu.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260212140917.1443253-5-peter.maydell@linaro.org>",
    "list_archive_url": null,
    "date": "2026-02-12T14:09:16",
    "name": "[4/5] net: mark struct udp_header as QEMU_PACKED",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "15e20b22d780f8bb13e3ae1c49ed8166db85bb01",
    "submitter": {
        "id": 5111,
        "url": "http://patchwork.ozlabs.org/api/people/5111/?format=api",
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260212140917.1443253-5-peter.maydell@linaro.org/mbox/",
    "series": [
        {
            "id": 491981,
            "url": "http://patchwork.ozlabs.org/api/series/491981/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=491981",
            "date": "2026-02-12T14:09:12",
            "name": "net: mark eth_header, udp_header, tcp_header as QEMU_PACKED",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/491981/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2195951/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2195951/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=t+cJ19PH;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"
        ],
        "Received": [
            "from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fBcgW2Dtjz1xr1\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 13 Feb 2026 01:12:07 +1100 (AEDT)",
            "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1vqXO3-0000iX-Ga; Thu, 12 Feb 2026 09:09:43 -0500",
            "from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <peter.maydell@linaro.org>)\n id 1vqXNp-0000gN-Gj\n for qemu-devel@nongnu.org; Thu, 12 Feb 2026 09:09:29 -0500",
            "from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <peter.maydell@linaro.org>)\n id 1vqXNn-0006QK-VN\n for qemu-devel@nongnu.org; Thu, 12 Feb 2026 09:09:29 -0500",
            "by mail-wm1-x32a.google.com with SMTP id\n 5b1f17b1804b1-4806dffc64cso69380395e9.1\n for <qemu-devel@nongnu.org>; Thu, 12 Feb 2026 06:09:27 -0800 (PST)",
            "from lanath.. (wildly.archaic.org.uk. [81.2.115.145])\n by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-4835dd0e327sm123266885e9.14.2026.02.12.06.09.24\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Thu, 12 Feb 2026 06:09:24 -0800 (PST)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1770905366; x=1771510166; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=w7/HOOx+I4w67JP8F45Y9oVZsaYEEhfC+iicHDh+kCk=;\n b=t+cJ19PHe34CB2lXOxf7cAlhABsUJhyBQudJyWVWG4+3XwXRabRJLjKph8o5aE6J2R\n fox8v0HuK92U0r6dmwSnN/OVbXWpmPY8btTIFTF16dZ8qxpwJNcKIT/ZfZASLmD3m4fh\n zmCGGuP0p5MpxOC7GLpT+2kh2ArBTIBeBdB1JJksfD+xwsm8PQSB7J53eNDL/3EJqQ6t\n Pyg6m7dtQ8PvyEGLhXKMlfWbG1vUBDxdQ/b52LsPMSeN4F70m5cA8deS/48MOFbbvxWo\n /plOFRDbV4qbGqtWf/ODsVdu2NMiL/IaGSogAS7lrF/rtJcOzNyVCA8reDbbOk57eTUi\n QEuQ==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1770905366; x=1771510166;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=w7/HOOx+I4w67JP8F45Y9oVZsaYEEhfC+iicHDh+kCk=;\n b=orADnXY2Hd6rK1tgbgbNMHSNoJ9b+EzFlONN1wcNoGISfz9a/xuN2ERirFHkKlGTSp\n 5qkrljMMr6GWCztSc66GCFETtjd0POKQuz195scqNwnlgqNmxw/jSgFLvkjRL+EalNdU\n zF5uVX9kyqdSHYezmxVe5sNAVxq9cCgFM4CxZUCjJCFlIYg/bLlUxWocgS4r9eps04Hz\n F0NwMofEN02mE0xecCzLRJ5Dr7R+QwXOTHTf/drlKnfQM4KW2LvW01GZuxi/X+9tByVC\n QWWSnq/o1EZ2OQG/i7SDDTissoKwn9UnhBogH1oEh6+dwSHkZNiFp83qD9S+NH/vSYR5\n +DQA==",
        "X-Gm-Message-State": "AOJu0Yz8KpLQ7tBrKYVlZrkgPw3AKptPJP3nCC6GM7N8UXNKdb06O2lH\n xEct5rbUHu3SiITmxjKETd01nLgLElybkCkfGbMEdIk5QiccMu3WB3WhD2/uEtU9FVWaA6hIZZ7\n kHrAu",
        "X-Gm-Gg": "AZuq6aLyONfw2WEa5QeZzxRqidESyIDvPuOiVCYt1T1S2+DQBAOn6uRy7WkudiOM7kS\n 6V49Gfo94B9G7jrDMHFLpXFsAgDS+Un7JLjW5fIUEukxJHkKgDUcSnGofDHOq7cpnYUOek9ywnL\n sBRtgGQx7LEJPjbiFV7B3fznNECCFaFeuZ8ebGey3tWNrR1pIjymoltQq8CqR5zrCthmigTI3Ia\n 9LhR8310r0LO6uVArCllgMLniwGeid5accF5bkGKS1DccCHA0yhswuT5eL3vZWYAKbbTMdAlrq9\n dP71ryYw39u/HAzXda4f1Q39xqQ0tBx6aecGwe3l/9SsDXGa/mZhmHIV38eJv7f7h0D8kTtWRTK\n AlgRzGcHO5u1c1QcAMlE/iuwnHoh6DIJ7p/0ab852h15BzXEdSmqvlyXDn/hXYMkL7gvYSBMzn0\n 0sAVOY0pHXEs3A2ASr3nc2cmqADdxg+TkhS6/rusBFVjwMrERs7Hnk86xnGgQmgtGFjon3hEY0H\n h47ht/JvZlDHH6inaFyQ8dIEZF+IkM=",
        "X-Received": "by 2002:a05:600c:8b64:b0:480:1e40:3d2 with SMTP id\n 5b1f17b1804b1-483657181edmr36506925e9.29.1770905365699;\n Thu, 12 Feb 2026 06:09:25 -0800 (PST)",
        "From": "Peter Maydell <peter.maydell@linaro.org>",
        "To": "qemu-devel@nongnu.org",
        "Cc": "Jiri Pirko <jiri@resnulli.us>, Jason Wang <jasowang@redhat.com>,\n Dmitry Fleytman <dmitry.fleytman@gmail.com>,\n Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>,\n Patrick Venture <venture@google.com>",
        "Subject": "[PATCH 4/5] net: mark struct udp_header as QEMU_PACKED",
        "Date": "Thu, 12 Feb 2026 14:09:16 +0000",
        "Message-ID": "<20260212140917.1443253-5-peter.maydell@linaro.org>",
        "X-Mailer": "git-send-email 2.43.0",
        "In-Reply-To": "<20260212140917.1443253-1-peter.maydell@linaro.org>",
        "References": "<20260212140917.1443253-1-peter.maydell@linaro.org>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Received-SPF": "pass client-ip=2a00:1450:4864:20::32a;\n envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32a.google.com",
        "X-Spam_score_int": "-20",
        "X-Spam_score": "-2.1",
        "X-Spam_bar": "--",
        "X-Spam_report": "(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=ham autolearn_force=no",
        "X-Spam_action": "no action",
        "X-BeenThere": "qemu-devel@nongnu.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "qemu development <qemu-devel.nongnu.org>",
        "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>",
        "List-Archive": "<https://lists.nongnu.org/archive/html/qemu-devel>",
        "List-Post": "<mailto:qemu-devel@nongnu.org>",
        "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>",
        "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>",
        "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org",
        "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"
    },
    "content": "The eth_header is not actually guaranteed to be aligned.  We attempt\nto deal with this in some places such as net_checksum_calculate() by\nusing lduw_be_p() and so on to access the fields, but this is not\nsufficient to be correct, because even accessing a byte member within\na misaligned struct is undefined behaviour.  The clang sanitizer will\nemit an error like this if you run the sifive_u_mmc functional test\nwith sanitizers enabled:\n\n../../net/checksum.c:168:24: runtime error: member access within misaligned address 0x5b7a7f829033 for type 'udp_header' (aka 'struct udp_header'), which requires 2 byte alignment\n0x5b7a7f829033: note: pointer points here\n ff  ff ff ff 00 44 00 43 01  34 58 54 01 01 06 00 85  95 80 60 00 00 00 00 00  00 00 00 00 00 00 00\n              ^\n    #0 0x5b7a71a5887e in net_checksum_calculate /home/pm215/qemu/build/clang/../../net/checksum.c:168:24\n    #1 0x5b7a7156819a in gem_transmit /home/pm215/qemu/build/clang/../../hw/net/cadence_gem.c:1386:21\n    #2 0x5b7a71566201 in gem_write /home/pm215/qemu/build/clang/../../hw/net/cadence_gem.c:1650:13\n\nFix this by marking the udp_header struct as QEMU_PACKED,\nso that the compiler knows it might be unaligned and will\ngenerate the right code for accessing fields.\n\nSigned-off-by: Peter Maydell <peter.maydell@linaro.org>\n---\n include/net/eth.h | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)",
    "diff": "diff --git a/include/net/eth.h b/include/net/eth.h\nindex 63f598d7cd..df90ff0837 100644\n--- a/include/net/eth.h\n+++ b/include/net/eth.h\n@@ -85,7 +85,7 @@ typedef struct udp_header {\n     uint16_t uh_dport; /* destination port */\n     uint16_t uh_ulen;  /* udp length */\n     uint16_t uh_sum;   /* udp checksum */\n-} udp_header;\n+} QEMU_PACKED udp_header;\n \n typedef struct ip_pseudo_header {\n     uint32_t ip_src;\n",
    "prefixes": [
        "4/5"
    ]
}