get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 810783,
    "url": "http://patchwork.ozlabs.org/api/patches/810783/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/1504729728-23279-2-git-send-email-cota@braap.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": "<1504729728-23279-2-git-send-email-cota@braap.org>",
    "list_archive_url": null,
    "date": "2017-09-06T20:28:43",
    "name": "[RFC,1/6] tcg: keep a pointer to the current TB in TCGContext",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "c01a825095b6e24e420b89889639b45e747453d1",
    "submitter": {
        "id": 65690,
        "url": "http://patchwork.ozlabs.org/api/people/65690/?format=api",
        "name": "Emilio Cota",
        "email": "cota@braap.org"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/1504729728-23279-2-git-send-email-cota@braap.org/mbox/",
    "series": [
        {
            "id": 1871,
            "url": "http://patchwork.ozlabs.org/api/series/1871/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=1871",
            "date": "2017-09-06T20:28:45",
            "name": "initial plugin support",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/1871/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/810783/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/810783/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>)",
            "ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=braap.org header.i=@braap.org\n\theader.b=\"btcYliQK\"; \n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=messagingengine.com\n\theader.i=@messagingengine.com header.b=\"QnBeaSxV\"; \n\tdkim-atps=neutral"
        ],
        "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 3xnb0g1dtNz9t2c\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu,  7 Sep 2017 06:34:27 +1000 (AEST)",
            "from localhost ([::1]:37687 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 1dph1l-0005mI-Ab\n\tfor incoming@patchwork.ozlabs.org; Wed, 06 Sep 2017 16:34:25 -0400",
            "from eggs.gnu.org ([2001:4830:134:3::10]:53493)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <cota@braap.org>) id 1dpgxU-0002Zo-BR\n\tfor qemu-devel@nongnu.org; Wed, 06 Sep 2017 16:30:05 -0400",
            "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <cota@braap.org>) id 1dpgxR-00013f-5c\n\tfor qemu-devel@nongnu.org; Wed, 06 Sep 2017 16:30:00 -0400",
            "from out1-smtp.messagingengine.com ([66.111.4.25]:41599)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <cota@braap.org>) id 1dpgxQ-00011q-VR\n\tfor qemu-devel@nongnu.org; Wed, 06 Sep 2017 16:29:57 -0400",
            "from compute4.internal (compute4.nyi.internal [10.202.2.44])\n\tby mailout.nyi.internal (Postfix) with ESMTP id 1E34A20B2E;\n\tWed,  6 Sep 2017 16:29:55 -0400 (EDT)",
            "from frontend2 ([10.202.2.161])\n\tby compute4.internal (MEProxy); Wed, 06 Sep 2017 16:29:55 -0400",
            "from localhost (flamenco.cs.columbia.edu [128.59.20.216])\n\tby mail.messagingengine.com (Postfix) with ESMTPA id CCF49240A4;\n\tWed,  6 Sep 2017 16:29:54 -0400 (EDT)"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=braap.org; h=cc\n\t:date:from:in-reply-to:message-id:references:subject:to\n\t:x-me-sender:x-me-sender:x-sasl-enc:x-sasl-enc; s=mesmtp; bh=uIf\n\t9wyJY0a1xB9NEfA/yIJaXWVhupRaB6ow59U4DkJ4=; b=btcYliQKQlUNyulF/PM\n\tKsl25z107DGuMhf+D0fKVpmJ9rP/wksP/ECcLbMJ9LZuksiPE2K7wZ17cMEQxhsX\n\ttiB7LD55lDS1dihjOw87KUATv7JgAsegkrywUbcu6lHubxpUteMENEnQHNh3cn2w\n\tgSB8RAd8xqGKTYjVMccrAINc=",
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=\n\tmessagingengine.com; h=cc:date:from:in-reply-to:message-id\n\t:references:subject:to:x-me-sender:x-me-sender:x-sasl-enc\n\t:x-sasl-enc; s=fm1; bh=uIf9wyJY0a1xB9NEfA/yIJaXWVhupRaB6ow59U4Dk\n\tJ4=; b=QnBeaSxVqZDvUeNPej0m0gwr65aDv616XuLyeoA9MwHGSg7vXwSFeGp9X\n\toxURzB0lRYFXDUpIVv72UTwziM2ScW+1cba9/Hl3XfF9qObcAk43ePxePU3mqBUU\n\tBx2TaiQt3JM2mdMxQqIjy6yiarJ8Z3KlXDZPBI0mEEDvsGGIH3EYKRuboA3MIP8F\n\tBMSn+hokAhVY2XRZTNrkKjtMg3N7/gSV7aXCishE20prKT4vydnVQeR8rAZZ0j5+\n\tkdn5Fn/t016qZcyRem0Oc48B2ARdOZWTt6g8aith/0GS6dnZnKnGX6ijEnOvGveZ\n\tHQ28UIisUzPNlZBztB6ZobJfnSPQg=="
        ],
        "X-ME-Sender": "<xms:w1qwWXwuxMmAKUb_H2vcc9TaxP_gQ3y5gLk2fi7zHvz4VTio1tj8NQ>",
        "X-Sasl-enc": "siU69U5WVz7GPr1InDXiOUOueonVQIisbKO7R20WO30e 1504729794",
        "From": "\"Emilio G. Cota\" <cota@braap.org>",
        "To": "qemu-devel@nongnu.org",
        "Date": "Wed,  6 Sep 2017 16:28:43 -0400",
        "Message-Id": "<1504729728-23279-2-git-send-email-cota@braap.org>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1504729728-23279-1-git-send-email-cota@braap.org>",
        "References": "<1504729728-23279-1-git-send-email-cota@braap.org>",
        "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]",
        "X-Received-From": "66.111.4.25",
        "Subject": "[Qemu-devel] [RFC 1/6] tcg: keep a pointer to the current TB in\n\tTCGContext",
        "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": "=?utf-8?q?Llu=C3=ADs_Vilanova?= <vilanova@ac.upc.edu>,\n\tStefan Hajnoczi <stefanha@redhat.com>",
        "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": "Instead of just a copy of tb->cflags. This gives access in TCG\nto other fields in TB, which will be needed when we implement\ncallbacks from memory accesses performed by TCG-translated code.\n\nSigned-off-by: Emilio G. Cota <cota@braap.org>\n---\n tcg/tcg.h                 |  2 +-\n accel/tcg/translate-all.c |  3 ++-\n tcg/tcg-op.c              | 10 +++++-----\n 3 files changed, 8 insertions(+), 7 deletions(-)",
    "diff": "diff --git a/tcg/tcg.h b/tcg/tcg.h\nindex cf4eeaf..86ca604 100644\n--- a/tcg/tcg.h\n+++ b/tcg/tcg.h\n@@ -676,7 +676,7 @@ struct TCGContext {\n     uintptr_t *tb_jmp_target_addr; /* tb->jmp_target_addr if !USE_DIRECT_JUMP */\n \n     TCGRegSet reserved_regs;\n-    uint32_t tb_cflags; /* cflags of the current TB */\n+    const TranslationBlock *tb;\n     intptr_t current_frame_offset;\n     intptr_t frame_start;\n     intptr_t frame_end;\ndiff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c\nindex 69cc7dc..7332afc 100644\n--- a/accel/tcg/translate-all.c\n+++ b/accel/tcg/translate-all.c\n@@ -1600,7 +1600,6 @@ TranslationBlock *tb_gen_code(CPUState *cpu,\n     tb->flags = flags;\n     tb->cflags = cflags;\n     tb->trace_vcpu_dstate = *cpu->trace_dstate;\n-    tcg_ctx->tb_cflags = cflags;\n \n #ifdef CONFIG_PROFILER\n     /* includes aborted translations because of exceptions */\n@@ -1610,9 +1609,11 @@ TranslationBlock *tb_gen_code(CPUState *cpu,\n \n     tcg_func_start(tcg_ctx);\n \n+    tcg_ctx->tb = tb;\n     tcg_ctx->cpu = ENV_GET_CPU(env);\n     gen_intermediate_code(cpu, tb);\n     tcg_ctx->cpu = NULL;\n+    tcg_ctx->tb = NULL;\n \n     trace_translate_block(tb, tb->pc, tb->tc.ptr);\n \ndiff --git a/tcg/tcg-op.c b/tcg/tcg-op.c\nindex 2a8bf90..32449d2 100644\n--- a/tcg/tcg-op.c\n+++ b/tcg/tcg-op.c\n@@ -150,7 +150,7 @@ void tcg_gen_op6(TCGContext *ctx, TCGOpcode opc, TCGArg a1, TCGArg a2,\n \n void tcg_gen_mb(TCGBar mb_type)\n {\n-    if (tcg_ctx->tb_cflags & CF_PARALLEL) {\n+    if (tb_cflags(tcg_ctx->tb) & CF_PARALLEL) {\n         tcg_gen_op1(tcg_ctx, INDEX_op_mb, mb_type);\n     }\n }\n@@ -2794,7 +2794,7 @@ void tcg_gen_atomic_cmpxchg_i32(TCGv_i32 retv, TCGv addr, TCGv_i32 cmpv,\n {\n     memop = tcg_canonicalize_memop(memop, 0, 0);\n \n-    if (!(tcg_ctx->tb_cflags & CF_PARALLEL)) {\n+    if (!(tb_cflags(tcg_ctx->tb) & CF_PARALLEL)) {\n         TCGv_i32 t1 = tcg_temp_new_i32();\n         TCGv_i32 t2 = tcg_temp_new_i32();\n \n@@ -2838,7 +2838,7 @@ void tcg_gen_atomic_cmpxchg_i64(TCGv_i64 retv, TCGv addr, TCGv_i64 cmpv,\n {\n     memop = tcg_canonicalize_memop(memop, 1, 0);\n \n-    if (!(tcg_ctx->tb_cflags & CF_PARALLEL)) {\n+    if (!(tb_cflags(tcg_ctx->tb) & CF_PARALLEL)) {\n         TCGv_i64 t1 = tcg_temp_new_i64();\n         TCGv_i64 t2 = tcg_temp_new_i64();\n \n@@ -3015,7 +3015,7 @@ static void * const table_##NAME[16] = {                                \\\n void tcg_gen_atomic_##NAME##_i32                                        \\\n     (TCGv_i32 ret, TCGv addr, TCGv_i32 val, TCGArg idx, TCGMemOp memop) \\\n {                                                                       \\\n-    if (tcg_ctx->tb_cflags & CF_PARALLEL) {                             \\\n+    if (tb_cflags(tcg_ctx->tb) & CF_PARALLEL) {                         \\\n         do_atomic_op_i32(ret, addr, val, idx, memop, table_##NAME);     \\\n     } else {                                                            \\\n         do_nonatomic_op_i32(ret, addr, val, idx, memop, NEW,            \\\n@@ -3025,7 +3025,7 @@ void tcg_gen_atomic_##NAME##_i32                                        \\\n void tcg_gen_atomic_##NAME##_i64                                        \\\n     (TCGv_i64 ret, TCGv addr, TCGv_i64 val, TCGArg idx, TCGMemOp memop) \\\n {                                                                       \\\n-    if (tcg_ctx->tb_cflags & CF_PARALLEL) {                             \\\n+    if (tb_cflags(tcg_ctx->tb) & CF_PARALLEL) {                         \\\n         do_atomic_op_i64(ret, addr, val, idx, memop, table_##NAME);     \\\n     } else {                                                            \\\n         do_nonatomic_op_i64(ret, addr, val, idx, memop, NEW,            \\\n",
    "prefixes": [
        "RFC",
        "1/6"
    ]
}