get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 633512,
    "url": "http://patchwork.ozlabs.org/api/patches/633512/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/skiboot/patch/1465535032-26749-11-git-send-email-gwshan@linux.vnet.ibm.com/",
    "project": {
        "id": 44,
        "url": "http://patchwork.ozlabs.org/api/projects/44/?format=api",
        "name": "skiboot firmware development",
        "link_name": "skiboot",
        "list_id": "skiboot.lists.ozlabs.org",
        "list_email": "skiboot@lists.ozlabs.org",
        "web_url": "http://github.com/open-power/skiboot",
        "scm_url": "http://github.com/open-power/skiboot",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<1465535032-26749-11-git-send-email-gwshan@linux.vnet.ibm.com>",
    "list_archive_url": null,
    "date": "2016-06-10T05:03:39",
    "name": "[v12,10/23] core/pci: Extend pci_walk_dev() for PCI slot",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "b85b7d2a5c5effc84846ff7d9d713b5a3d2468c9",
    "submitter": {
        "id": 63923,
        "url": "http://patchwork.ozlabs.org/api/people/63923/?format=api",
        "name": "Gavin Shan",
        "email": "gwshan@linux.vnet.ibm.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/skiboot/patch/1465535032-26749-11-git-send-email-gwshan@linux.vnet.ibm.com/mbox/",
    "series": [],
    "comments": "http://patchwork.ozlabs.org/api/patches/633512/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/633512/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<skiboot-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "skiboot@lists.ozlabs.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@bilbo.ozlabs.org",
            "skiboot@lists.ozlabs.org"
        ],
        "Received": [
            "from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3rQqsN5dhvz9sD3\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri, 10 Jun 2016 15:06:48 +1000 (AEST)",
            "from ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 3rQqsN4mbbzDqNj\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri, 10 Jun 2016 15:06:48 +1000 (AEST)",
            "from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com\n\t[148.163.156.1])\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 3rQqqt53jYzDqP9\n\tfor <skiboot@lists.ozlabs.org>; Fri, 10 Jun 2016 15:05:30 +1000 (AEST)",
            "from pps.filterd (m0098404.ppops.net [127.0.0.1])\n\tby mx0a-001b2d01.pphosted.com (8.16.0.11/8.16.0.11) with SMTP id\n\tu5A53oqG052277\n\tfor <skiboot@lists.ozlabs.org>; Fri, 10 Jun 2016 01:05:29 -0400",
            "from e23smtp08.au.ibm.com (e23smtp08.au.ibm.com [202.81.31.141])\n\tby mx0a-001b2d01.pphosted.com with ESMTP id 23fm5xu17u-1\n\t(version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT)\n\tfor <skiboot@lists.ozlabs.org>; Fri, 10 Jun 2016 01:05:29 -0400",
            "from localhost\n\tby e23smtp08.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use\n\tOnly! Violators will be prosecuted\n\tfor <skiboot@lists.ozlabs.org> from <gwshan@linux.vnet.ibm.com>;\n\tFri, 10 Jun 2016 15:05:26 +1000",
            "from d23dlp01.au.ibm.com (202.81.31.203)\n\tby e23smtp08.au.ibm.com (202.81.31.205) with IBM ESMTP SMTP Gateway:\n\tAuthorized Use Only! Violators will be prosecuted; \n\tFri, 10 Jun 2016 15:05:23 +1000",
            "from d23relay09.au.ibm.com (d23relay09.au.ibm.com [9.185.63.181])\n\tby d23dlp01.au.ibm.com (Postfix) with ESMTP id 4A3CF2CE8060\n\tfor <skiboot@lists.ozlabs.org>; Fri, 10 Jun 2016 15:05:18 +1000 (EST)",
            "from d23av03.au.ibm.com (d23av03.au.ibm.com [9.190.234.97])\n\tby d23relay09.au.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id\n\tu5A557iR3408152\n\tfor <skiboot@lists.ozlabs.org>; Fri, 10 Jun 2016 15:05:07 +1000",
            "from d23av03.au.ibm.com (localhost [127.0.0.1])\n\tby d23av03.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id\n\tu5A54mnK024462\n\tfor <skiboot@lists.ozlabs.org>; Fri, 10 Jun 2016 15:04:48 +1000",
            "from ozlabs.au.ibm.com (ozlabs.au.ibm.com [9.192.253.14])\n\tby d23av03.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id\n\tu5A54m7k024456; Fri, 10 Jun 2016 15:04:48 +1000",
            "from bran.ozlabs.ibm.com (haven.au.ibm.com [9.192.254.114])\n\tby ozlabs.au.ibm.com (Postfix) with ESMTP id 7A528A01AD;\n\tFri, 10 Jun 2016 15:03:57 +1000 (AEST)",
            "from gwshan (shangw.ozlabs.ibm.com [10.61.2.199])\n\tby bran.ozlabs.ibm.com (Postfix) with ESMTP id 78257E3B1A;\n\tFri, 10 Jun 2016 15:03:57 +1000 (AEST)",
            "by gwshan (Postfix, from userid 1000)\n\tid 5C54A942CA3; Fri, 10 Jun 2016 15:03:57 +1000 (AEST)"
        ],
        "X-IBM-Helo": "d23dlp01.au.ibm.com",
        "X-IBM-MailFrom": "gwshan@linux.vnet.ibm.com",
        "X-IBM-RcptTo": "skiboot@lists.ozlabs.org",
        "From": "Gavin Shan <gwshan@linux.vnet.ibm.com>",
        "To": "skiboot@lists.ozlabs.org",
        "Date": "Fri, 10 Jun 2016 15:03:39 +1000",
        "X-Mailer": "git-send-email 2.1.0",
        "In-Reply-To": "<1465535032-26749-1-git-send-email-gwshan@linux.vnet.ibm.com>",
        "References": "<1465535032-26749-1-git-send-email-gwshan@linux.vnet.ibm.com>",
        "X-TM-AS-MML": "disable",
        "X-Content-Scanned": "Fidelis XPS MAILER",
        "x-cbid": "16061005-0048-0000-0000-000001904994",
        "X-IBM-AV-DETECTION": "SAVI=unused REMOTE=unused XFE=unused",
        "x-cbparentid": "16061005-0049-0000-0000-000045E8DBCE",
        "Message-Id": "<1465535032-26749-11-git-send-email-gwshan@linux.vnet.ibm.com>",
        "X-Proofpoint-Virus-Version": "vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2016-06-10_04:, , signatures=0",
        "X-Proofpoint-Spam-Details": "rule=outbound_notspam policy=outbound score=0\n\tspamscore=0 suspectscore=1\n\tmalwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam\n\tadjust=0 reason=mlx scancount=1 engine=8.0.1-1604210000\n\tdefinitions=main-1606100058",
        "Subject": "[Skiboot] [PATCH v12 10/23] core/pci: Extend pci_walk_dev() for PCI\n\tslot",
        "X-BeenThere": "skiboot@lists.ozlabs.org",
        "X-Mailman-Version": "2.1.22",
        "Precedence": "list",
        "List-Id": "Mailing list for skiboot development <skiboot.lists.ozlabs.org>",
        "List-Unsubscribe": "<https://lists.ozlabs.org/options/skiboot>,\n\t<mailto:skiboot-request@lists.ozlabs.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.ozlabs.org/pipermail/skiboot/>",
        "List-Post": "<mailto:skiboot@lists.ozlabs.org>",
        "List-Help": "<mailto:skiboot-request@lists.ozlabs.org?subject=help>",
        "List-Subscribe": "<https://lists.ozlabs.org/listinfo/skiboot>,\n\t<mailto:skiboot-request@lists.ozlabs.org?subject=subscribe>",
        "Cc": "alistair@popple.id.au",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "base64",
        "Errors-To": "skiboot-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org",
        "Sender": "\"Skiboot\"\n\t<skiboot-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org>"
    },
    "content": "Currently, pci_walk_dev() iterates all PCI devices behind the\nspecified PHB. This extends the function to allow iteration\non PCI devices behind the specified PCI slot so that it can\nbe used by PCI hotplug logic in the subsequent patches.\n\nSigned-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>\nReviewed-by: Russell Currey <ruscur@russell.cc>\n---\n core/pci.c    | 12 ++++++++----\n hw/npu.c      |  4 ++--\n include/pci.h |  1 +\n 3 files changed, 11 insertions(+), 6 deletions(-)",
    "diff": "diff --git a/core/pci.c b/core/pci.c\nindex 3d4f639..64b9189 100644\n--- a/core/pci.c\n+++ b/core/pci.c\n@@ -797,9 +797,9 @@ static void pci_scan_phb(void *data)\n \tpci_scan(phb, 0, 0xff, &phb->devices, NULL, has_link);\n \n \t/* Configure MPS (Max Payload Size) for PCIe domain */\n-\tpci_walk_dev(phb, pci_get_mps, &mps);\n+\tpci_walk_dev(phb, NULL, pci_get_mps, &mps);\n \tphb->mps = mps;\n-\tpci_walk_dev(phb, pci_configure_mps, NULL);\n+\tpci_walk_dev(phb, NULL, pci_configure_mps, NULL);\n }\n \n int64_t pci_register_phb(struct phb *phb, int opal_id)\n@@ -1581,11 +1581,15 @@ static struct pci_device *__pci_walk_dev(struct phb *phb,\n }\n \n struct pci_device *pci_walk_dev(struct phb *phb,\n+\t\t\t\tstruct pci_device *pd,\n \t\t\t\tint (*cb)(struct phb *,\n \t\t\t\t\t  struct pci_device *,\n \t\t\t\t\t  void *),\n \t\t\t\tvoid *userdata)\n {\n+\tif (pd)\n+\t\treturn __pci_walk_dev(phb, &pd->children, cb, userdata);\n+\n \treturn __pci_walk_dev(phb, &phb->devices, cb, userdata);\n }\n \n@@ -1605,7 +1609,7 @@ static int __pci_find_dev(struct phb *phb,\n \n struct pci_device *pci_find_dev(struct phb *phb, uint16_t bdfn)\n {\n-\treturn pci_walk_dev(phb, __pci_find_dev, &bdfn);\n+\treturn pci_walk_dev(phb, NULL, __pci_find_dev, &bdfn);\n }\n \n static int __pci_restore_bridge_buses(struct phb *phb,\n@@ -1626,7 +1630,7 @@ static int __pci_restore_bridge_buses(struct phb *phb,\n \n void pci_restore_bridge_buses(struct phb *phb)\n {\n-\tpci_walk_dev(phb, __pci_restore_bridge_buses, NULL);\n+\tpci_walk_dev(phb, NULL, __pci_restore_bridge_buses, NULL);\n }\n \n struct pci_cfg_reg_filter *pci_find_cfg_reg_filter(struct pci_device *pd,\ndiff --git a/hw/npu.c b/hw/npu.c\nindex a8f9f06..f57d34d 100644\n--- a/hw/npu.c\n+++ b/hw/npu.c\n@@ -541,7 +541,7 @@ static void npu_dev_bind_pci_dev(struct npu_dev *dev)\n \t\tif (!phb)\n \t\t\tcontinue;\n \n-\t\tdev->pd = pci_walk_dev(phb, __npu_dev_bind_pci_dev, dev);\n+\t\tdev->pd = pci_walk_dev(phb, NULL, __npu_dev_bind_pci_dev, dev);\n \t\tif (dev->pd) {\n \t\t\tdev->phb = phb;\n \t\t\t/* Found the device, set the bit in config space */\n@@ -618,7 +618,7 @@ static int npu_dn_fixup(struct phb *phb,\n \n static void npu_phb_final_fixup(struct phb *phb)\n {\n-\tpci_walk_dev(phb, npu_dn_fixup, NULL);\n+\tpci_walk_dev(phb, NULL, npu_dn_fixup, NULL);\n }\n \n static void npu_ioda_init(struct npu *p)\ndiff --git a/include/pci.h b/include/pci.h\nindex bd966ba..1039f10 100644\n--- a/include/pci.h\n+++ b/include/pci.h\n@@ -524,6 +524,7 @@ extern int64_t pci_find_ecap(struct phb *phb, uint16_t bdfn, uint16_t cap,\n \t\t\t     uint8_t *version);\n extern void pci_device_init(struct phb *phb, struct pci_device *pd);\n extern struct pci_device *pci_walk_dev(struct phb *phb,\n+\t\t\t\t       struct pci_device *pd,\n \t\t\t\t       int (*cb)(struct phb *,\n \t\t\t\t\t\t struct pci_device *,\n \t\t\t\t\t\t void *),\n",
    "prefixes": [
        "v12",
        "10/23"
    ]
}