get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 807731,
    "url": "http://patchwork.ozlabs.org/api/patches/807731/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170830165252.13421-6-cohuck@redhat.com/",
    "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": "<20170830165252.13421-6-cohuck@redhat.com>",
    "list_archive_url": null,
    "date": "2017-08-30T16:52:13",
    "name": "[PULL,05/44] tests/boot-sector: Do not overwrite the x86 buffer on other architectures",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "79ac0107825470b4e507c3cb800bd509cf3fb651",
    "submitter": {
        "id": 71914,
        "url": "http://patchwork.ozlabs.org/api/people/71914/?format=api",
        "name": "Cornelia Huck",
        "email": "cohuck@redhat.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170830165252.13421-6-cohuck@redhat.com/mbox/",
    "series": [
        {
            "id": 656,
            "url": "http://patchwork.ozlabs.org/api/series/656/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=656",
            "date": "2017-08-30T16:52:08",
            "name": "[PULL,01/44] s390x/css: use macro for event-information pending error recover code",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/656/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/807731/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/807731/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@bilbo.ozlabs.org",
        "Authentication-Results": [
            "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)",
            "ext-mx08.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com",
            "ext-mx08.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=cohuck@redhat.com"
        ],
        "Received": [
            "from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xjBZT2KPYz9sPt\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 31 Aug 2017 03:00:01 +1000 (AEST)",
            "from localhost ([::1]:51645 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dn6LP-0007IK-3q\n\tfor incoming@patchwork.ozlabs.org; Wed, 30 Aug 2017 12:59:59 -0400",
            "from eggs.gnu.org ([2001:4830:134:3::10]:56416)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <cohuck@redhat.com>) id 1dn6F0-0001UV-Fg\n\tfor qemu-devel@nongnu.org; Wed, 30 Aug 2017 12:53:23 -0400",
            "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <cohuck@redhat.com>) id 1dn6Ez-00050B-HS\n\tfor qemu-devel@nongnu.org; Wed, 30 Aug 2017 12:53:22 -0400",
            "from mx1.redhat.com ([209.132.183.28]:61697)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <cohuck@redhat.com>) id 1dn6Ez-0004zt-8A\n\tfor qemu-devel@nongnu.org; Wed, 30 Aug 2017 12:53:21 -0400",
            "from smtp.corp.redhat.com\n\t(int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 25D66C0587DB;\n\tWed, 30 Aug 2017 16:53:20 +0000 (UTC)",
            "from localhost (ovpn-116-210.ams2.redhat.com [10.36.116.210])\n\tby smtp.corp.redhat.com (Postfix) with ESMTPS id 132CA5D722;\n\tWed, 30 Aug 2017 16:53:18 +0000 (UTC)"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.3.2 mx1.redhat.com 25D66C0587DB",
        "From": "Cornelia Huck <cohuck@redhat.com>",
        "To": "peter.maydell@linaro.org",
        "Date": "Wed, 30 Aug 2017 18:52:13 +0200",
        "Message-Id": "<20170830165252.13421-6-cohuck@redhat.com>",
        "In-Reply-To": "<20170830165252.13421-1-cohuck@redhat.com>",
        "References": "<20170830165252.13421-1-cohuck@redhat.com>",
        "X-Scanned-By": "MIMEDefang 2.79 on 10.5.11.14",
        "X-Greylist": "Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.32]);\n\tWed, 30 Aug 2017 16:53:20 +0000 (UTC)",
        "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]",
        "X-Received-From": "209.132.183.28",
        "Subject": "[Qemu-devel] [PULL 05/44] tests/boot-sector: Do not overwrite the\n\tx86 buffer on other architectures",
        "X-BeenThere": "qemu-devel@nongnu.org",
        "X-Mailman-Version": "2.1.21",
        "Precedence": "list",
        "List-Id": "<qemu-devel.nongnu.org>",
        "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>",
        "List-Archive": "<http://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\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>",
        "Cc": "thuth@redhat.com, david@redhat.com, Cornelia Huck <cohuck@redhat.com>,\n\tagraf@suse.de, qemu-devel@nongnu.org, borntraeger@de.ibm.com,\n\trth@twiddle.net",
        "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org",
        "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"
    },
    "content": "From: Thomas Huth <thuth@redhat.com>\n\nRe-using the boot_sector code buffer from x86 for other architectures\nis not very nice, especially if we add more architectures later. It's\nalso ugly that the test uses a huge pre-initialized array at all - the\nsize of the executable is very huge due to this array. So let's use a\nseparate buffer for each architecture instead, allocated from the heap,\nso that we really just use the memory that we need.\n\nSuggested-by: Michael Tsirkin <mst@redhat.com>\nSigned-off-by: Thomas Huth <thuth@redhat.com>\nReviewed-by: Cornelia Huck <cohuck@redhat.com>\nMessage-Id: <1502431076-22849-2-git-send-email-thuth@redhat.com>\nSigned-off-by: Cornelia Huck <cohuck@redhat.com>\n---\n tests/boot-sector.c | 41 ++++++++++++++++++++++++++---------------\n 1 file changed, 26 insertions(+), 15 deletions(-)",
    "diff": "diff --git a/tests/boot-sector.c b/tests/boot-sector.c\nindex e3880f4455..87295624d2 100644\n--- a/tests/boot-sector.c\n+++ b/tests/boot-sector.c\n@@ -21,13 +21,12 @@\n #define SIGNATURE 0xdead\n #define SIGNATURE_OFFSET 0x10\n #define BOOT_SECTOR_ADDRESS 0x7c00\n+#define SIGNATURE_ADDR (BOOT_SECTOR_ADDRESS + SIGNATURE_OFFSET)\n \n-/* Boot sector code: write SIGNATURE into memory,\n+/* x86 boot sector code: write SIGNATURE into memory,\n  * then halt.\n- * Q35 machine requires a minimum 0x7e000 bytes disk.\n- * (bug or feature?)\n  */\n-static uint8_t boot_sector[0x7e000] = {\n+static uint8_t x86_boot_sector[512] = {\n     /* The first sector will be placed at RAM address 00007C00, and\n      * the BIOS transfers control to 00007C00\n      */\n@@ -50,8 +49,8 @@ static uint8_t boot_sector[0x7e000] = {\n     [0x07] = HIGH(SIGNATURE),\n     /* 7c08:  mov %ax,0x7c10 */\n     [0x08] = 0xa3,\n-    [0x09] = LOW(BOOT_SECTOR_ADDRESS + SIGNATURE_OFFSET),\n-    [0x0a] = HIGH(BOOT_SECTOR_ADDRESS + SIGNATURE_OFFSET),\n+    [0x09] = LOW(SIGNATURE_ADDR),\n+    [0x0a] = HIGH(SIGNATURE_ADDR),\n \n     /* 7c0b cli */\n     [0x0b] = 0xfa,\n@@ -72,7 +71,9 @@ static uint8_t boot_sector[0x7e000] = {\n int boot_sector_init(char *fname)\n {\n     int fd, ret;\n-    size_t len = sizeof boot_sector;\n+    size_t len;\n+    char *boot_code;\n+    const char *arch = qtest_get_arch();\n \n     fd = mkstemp(fname);\n     if (fd < 0) {\n@@ -80,16 +81,26 @@ int boot_sector_init(char *fname)\n         return 1;\n     }\n \n-    /* For Open Firmware based system, we can use a Forth script instead */\n-    if (strcmp(qtest_get_arch(), \"ppc64\") == 0) {\n-        len = sprintf((char *)boot_sector, \"\\\\ Bootscript\\n%x %x c! %x %x c!\\n\",\n-                LOW(SIGNATURE), BOOT_SECTOR_ADDRESS + SIGNATURE_OFFSET,\n-                HIGH(SIGNATURE), BOOT_SECTOR_ADDRESS + SIGNATURE_OFFSET + 1);\n+    if (g_str_equal(arch, \"i386\") || g_str_equal(arch, \"x86_64\")) {\n+        /* Q35 requires a minimum 0x7e000 bytes disk (bug or feature?) */\n+        len = MAX(0x7e000, sizeof(x86_boot_sector));\n+        boot_code = g_malloc0(len);\n+        memcpy(boot_code, x86_boot_sector, sizeof(x86_boot_sector));\n+    } else if (g_str_equal(arch, \"ppc64\")) {\n+        /* For Open Firmware based system, use a Forth script */\n+        boot_code = g_strdup_printf(\"\\\\ Bootscript\\n%x %x c! %x %x c!\\n\",\n+                                    LOW(SIGNATURE), SIGNATURE_ADDR,\n+                                    HIGH(SIGNATURE), SIGNATURE_ADDR + 1);\n+        len = strlen(boot_code);\n+    } else {\n+        g_assert_not_reached();\n     }\n \n-    ret = write(fd, boot_sector, len);\n+    ret = write(fd, boot_code, len);\n     close(fd);\n \n+    g_free(boot_code);\n+\n     if (ret != len) {\n         fprintf(stderr, \"Could not write \\\"%s\\\"\", fname);\n         return 1;\n@@ -115,8 +126,8 @@ void boot_sector_test(void)\n      * instruction.\n      */\n     for (i = 0; i < TEST_CYCLES; ++i) {\n-        signature_low = readb(BOOT_SECTOR_ADDRESS + SIGNATURE_OFFSET);\n-        signature_high = readb(BOOT_SECTOR_ADDRESS + SIGNATURE_OFFSET + 1);\n+        signature_low = readb(SIGNATURE_ADDR);\n+        signature_high = readb(SIGNATURE_ADDR + 1);\n         signature = (signature_high << 8) | signature_low;\n         if (signature == SIGNATURE) {\n             break;\n",
    "prefixes": [
        "PULL",
        "05/44"
    ]
}