get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 807883,
    "url": "http://patchwork.ozlabs.org/api/patches/807883/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20170830194617.26621-2-clg@kaod.org/",
    "project": {
        "id": 2,
        "url": "http://patchwork.ozlabs.org/api/projects/2/?format=api",
        "name": "Linux PPC development",
        "link_name": "linuxppc-dev",
        "list_id": "linuxppc-dev.lists.ozlabs.org",
        "list_email": "linuxppc-dev@lists.ozlabs.org",
        "web_url": "https://github.com/linuxppc/wiki/wiki",
        "scm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git",
        "webscm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/",
        "list_archive_url": "https://lore.kernel.org/linuxppc-dev/",
        "list_archive_url_format": "https://lore.kernel.org/linuxppc-dev/{}/",
        "commit_url_format": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/commit/?id={}"
    },
    "msgid": "<20170830194617.26621-2-clg@kaod.org>",
    "list_archive_url": "https://lore.kernel.org/linuxppc-dev/20170830194617.26621-2-clg@kaod.org/",
    "date": "2017-08-30T19:46:10",
    "name": "[v3,1/8] powerpc/xive: introduce a common routine xive_queue_page_alloc()",
    "commit_ref": "994ea2f41999113d84c317da3ec1e10aa6469b3f",
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "248042815db290ec367da5a497fd809986b8fc6e",
    "submitter": {
        "id": 68548,
        "url": "http://patchwork.ozlabs.org/api/people/68548/?format=api",
        "name": "Cédric Le Goater",
        "email": "clg@kaod.org"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20170830194617.26621-2-clg@kaod.org/mbox/",
    "series": [
        {
            "id": 695,
            "url": "http://patchwork.ozlabs.org/api/series/695/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=695",
            "date": "2017-08-30T19:46:17",
            "name": "guest exploitation of the XIVE interrupt controller",
            "version": 3,
            "mbox": "http://patchwork.ozlabs.org/series/695/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/807883/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/807883/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>",
        "X-Original-To": [
            "patchwork-incoming@ozlabs.org",
            "linuxppc-dev@lists.ozlabs.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@ozlabs.org",
            "linuxppc-dev@lists.ozlabs.org"
        ],
        "Received": [
            "from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68])\n\t(using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xjGh50x0Xz9t16\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu, 31 Aug 2017 06:05:09 +1000 (AEST)",
            "from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 3xjGh46SrjzDqXl\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu, 31 Aug 2017 06:05:08 +1000 (AEST)",
            "from 4.mo68.mail-out.ovh.net (4.mo68.mail-out.ovh.net\n\t[46.105.59.63])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 3xjGTx2NrYzDqRM\n\tfor <linuxppc-dev@lists.ozlabs.org>;\n\tThu, 31 Aug 2017 05:56:21 +1000 (AEST)",
            "from player776.ha.ovh.net (b6.ovh.net [213.186.33.56])\n\tby mo68.mail-out.ovh.net (Postfix) with ESMTP id B87CE74ECA\n\tfor <linuxppc-dev@lists.ozlabs.org>;\n\tWed, 30 Aug 2017 21:46:39 +0200 (CEST)",
            "from zorba.kaod.org.com (LFbn-1-2231-173.w90-76.abo.wanadoo.fr\n\t[90.76.52.173]) (Authenticated sender: clg@kaod.org)\n\tby player776.ha.ovh.net (Postfix) with ESMTPSA id 8B826400077;\n\tWed, 30 Aug 2017 21:46:33 +0200 (CEST)"
        ],
        "X-Greylist": "delayed 578 seconds by postgrey-1.36 at bilbo;\n\tThu, 31 Aug 2017 05:56:21 AEST",
        "From": "=?utf-8?q?C=C3=A9dric_Le_Goater?= <clg@kaod.org>",
        "To": "linuxppc-dev@lists.ozlabs.org",
        "Subject": "[PATCH v3 1/8] powerpc/xive: introduce a common routine\n\txive_queue_page_alloc()",
        "Date": "Wed, 30 Aug 2017 21:46:10 +0200",
        "Message-Id": "<20170830194617.26621-2-clg@kaod.org>",
        "X-Mailer": "git-send-email 2.13.5",
        "In-Reply-To": "<20170830194617.26621-1-clg@kaod.org>",
        "References": "<20170830194617.26621-1-clg@kaod.org>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "X-Ovh-Tracer-Id": "1593992794812746685",
        "X-VR-SPAMSTATE": "OK",
        "X-VR-SPAMSCORE": "-100",
        "X-VR-SPAMCAUSE": "gggruggvucftvghtrhhoucdtuddrfeelledrudeigddugedtucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddm",
        "X-BeenThere": "linuxppc-dev@lists.ozlabs.org",
        "X-Mailman-Version": "2.1.23",
        "Precedence": "list",
        "List-Id": "Linux on PowerPC Developers Mail List\n\t<linuxppc-dev.lists.ozlabs.org>",
        "List-Unsubscribe": "<https://lists.ozlabs.org/options/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.ozlabs.org/pipermail/linuxppc-dev/>",
        "List-Post": "<mailto:linuxppc-dev@lists.ozlabs.org>",
        "List-Help": "<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=help>",
        "List-Subscribe": "<https://lists.ozlabs.org/listinfo/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=subscribe>",
        "Cc": "David Gibson <david@gibson.dropbear.id.au>, Paul Mackerras\n\t<paulus@samba.org>, =?utf-8?q?C=C3=A9dric_Le_Goater?= <clg@kaod.org>",
        "Errors-To": "linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org",
        "Sender": "\"Linuxppc-dev\"\n\t<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>"
    },
    "content": "This routine will be used in the spapr backend. Also introduce a short\nxive_alloc_order() helper.\n\nSigned-off-by: Cédric Le Goater <clg@kaod.org>\nReviewed-by: David Gibson <david@gibson.dropbear.id.au>\n---\n arch/powerpc/sysdev/xive/common.c        | 16 ++++++++++++++++\n arch/powerpc/sysdev/xive/native.c        | 16 +++++-----------\n arch/powerpc/sysdev/xive/xive-internal.h |  6 ++++++\n 3 files changed, 27 insertions(+), 11 deletions(-)",
    "diff": "diff --git a/arch/powerpc/sysdev/xive/common.c b/arch/powerpc/sysdev/xive/common.c\nindex 6e0c9dee724f..26999ceae20e 100644\n--- a/arch/powerpc/sysdev/xive/common.c\n+++ b/arch/powerpc/sysdev/xive/common.c\n@@ -1424,6 +1424,22 @@ bool xive_core_init(const struct xive_ops *ops, void __iomem *area, u32 offset,\n \treturn true;\n }\n \n+__be32 *xive_queue_page_alloc(unsigned int cpu, u32 queue_shift)\n+{\n+\tunsigned int alloc_order;\n+\tstruct page *pages;\n+\t__be32 *qpage;\n+\n+\talloc_order = xive_alloc_order(queue_shift);\n+\tpages = alloc_pages_node(cpu_to_node(cpu), GFP_KERNEL, alloc_order);\n+\tif (!pages)\n+\t\treturn ERR_PTR(-ENOMEM);\n+\tqpage = (__be32 *)page_address(pages);\n+\tmemset(qpage, 0, 1 << queue_shift);\n+\n+\treturn qpage;\n+}\n+\n static int __init xive_off(char *arg)\n {\n \txive_cmdline_disabled = true;\ndiff --git a/arch/powerpc/sysdev/xive/native.c b/arch/powerpc/sysdev/xive/native.c\nindex 0f95476b01f6..ef92a83090e1 100644\n--- a/arch/powerpc/sysdev/xive/native.c\n+++ b/arch/powerpc/sysdev/xive/native.c\n@@ -202,17 +202,12 @@ EXPORT_SYMBOL_GPL(xive_native_disable_queue);\n static int xive_native_setup_queue(unsigned int cpu, struct xive_cpu *xc, u8 prio)\n {\n \tstruct xive_q *q = &xc->queue[prio];\n-\tunsigned int alloc_order;\n-\tstruct page *pages;\n \t__be32 *qpage;\n \n-\talloc_order = (xive_queue_shift > PAGE_SHIFT) ?\n-\t\t(xive_queue_shift - PAGE_SHIFT) : 0;\n-\tpages = alloc_pages_node(cpu_to_node(cpu), GFP_KERNEL, alloc_order);\n-\tif (!pages)\n-\t\treturn -ENOMEM;\n-\tqpage = (__be32 *)page_address(pages);\n-\tmemset(qpage, 0, 1 << xive_queue_shift);\n+\tqpage = xive_queue_page_alloc(cpu, xive_queue_shift);\n+\tif (IS_ERR(qpage))\n+\t\treturn PTR_ERR(qpage);\n+\n \treturn xive_native_configure_queue(get_hard_smp_processor_id(cpu),\n \t\t\t\t\t   q, prio, qpage, xive_queue_shift, false);\n }\n@@ -227,8 +222,7 @@ static void xive_native_cleanup_queue(unsigned int cpu, struct xive_cpu *xc, u8\n \t * from an IPI and iounmap isn't safe\n \t */\n \t__xive_native_disable_queue(get_hard_smp_processor_id(cpu), q, prio);\n-\talloc_order = (xive_queue_shift > PAGE_SHIFT) ?\n-\t\t(xive_queue_shift - PAGE_SHIFT) : 0;\n+\talloc_order = xive_alloc_order(xive_queue_shift);\n \tfree_pages((unsigned long)q->qpage, alloc_order);\n \tq->qpage = NULL;\n }\ndiff --git a/arch/powerpc/sysdev/xive/xive-internal.h b/arch/powerpc/sysdev/xive/xive-internal.h\nindex d07ef2d29caf..dd1e2022cce4 100644\n--- a/arch/powerpc/sysdev/xive/xive-internal.h\n+++ b/arch/powerpc/sysdev/xive/xive-internal.h\n@@ -56,6 +56,12 @@ struct xive_ops {\n \n bool xive_core_init(const struct xive_ops *ops, void __iomem *area, u32 offset,\n \t\t    u8 max_prio);\n+__be32 *xive_queue_page_alloc(unsigned int cpu, u32 queue_shift);\n+\n+static inline u32 xive_alloc_order(u32 queue_shift)\n+{\n+\treturn (queue_shift > PAGE_SHIFT) ? (queue_shift - PAGE_SHIFT) : 0;\n+}\n \n extern bool xive_cmdline_disabled;\n \n",
    "prefixes": [
        "v3",
        "1/8"
    ]
}