Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/748050/?format=api
{ "id": 748050, "url": "http://patchwork.ozlabs.org/api/patches/748050/?format=api", "web_url": "http://patchwork.ozlabs.org/project/skiboot/patch/1491544877.4166.152.camel@kernel.crashing.org/", "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": "<1491544877.4166.152.camel@kernel.crashing.org>", "list_archive_url": null, "date": "2017-04-07T06:01:17", "name": "[1/2] interrupts: Add an \"irq_for_each_source\" iterator", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "93442f8178a7d2a3fc0a4357168de8077a97138a", "submitter": { "id": 38, "url": "http://patchwork.ozlabs.org/api/people/38/?format=api", "name": "Benjamin Herrenschmidt", "email": "benh@kernel.crashing.org" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/skiboot/patch/1491544877.4166.152.camel@kernel.crashing.org/mbox/", "series": [], "comments": "http://patchwork.ozlabs.org/api/patches/748050/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/748050/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 [IPv6:2401:3900:2:1::3])\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 3vzpqc2b34z9s2s\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri, 7 Apr 2017 16:01:32 +1000 (AEST)", "from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 3vzpqc1bBXzDqJw\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri, 7 Apr 2017 16:01:32 +1000 (AEST)", "from gate.crashing.org (gate.crashing.org [63.228.1.57])\n\t(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 3vzpqR604lzDqGv\n\tfor <skiboot@lists.ozlabs.org>; Fri, 7 Apr 2017 16:01:23 +1000 (AEST)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby gate.crashing.org (8.14.1/8.13.8) with ESMTP id v3761H1N014127\n\tfor <skiboot@lists.ozlabs.org>; Fri, 7 Apr 2017 01:01:18 -0500" ], "Message-ID": "<1491544877.4166.152.camel@kernel.crashing.org>", "From": "Benjamin Herrenschmidt <benh@kernel.crashing.org>", "To": "skiboot@lists.ozlabs.org", "Date": "Fri, 07 Apr 2017 16:01:17 +1000", "X-Mailer": "Evolution 3.22.6 (3.22.6-1.fc25) ", "Mime-Version": "1.0", "Subject": "[Skiboot] [PATCH 1/2] interrupts: Add an \"irq_for_each_source\"\n\titerator", "X-BeenThere": "skiboot@lists.ozlabs.org", "X-Mailman-Version": "2.1.23", "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>", "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": "This will be used by subsequent XIVE reset improvements\n\nSigned-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>\n---\n core/interrupts.c | 12 ++++++++++++\n include/interrupts.h | 6 ++++++\n 2 files changed, 18 insertions(+)", "diff": "diff --git a/core/interrupts.c b/core/interrupts.c\nindex 006d555..b9f4d14 100644\n--- a/core/interrupts.c\n+++ b/core/interrupts.c\n@@ -126,6 +126,18 @@ struct irq_source *irq_find_source(uint32_t isn)\n \treturn NULL;\n }\n \n+void irq_for_each_source(void (*cb)(struct irq_source *, void *), void *data)\n+{\n+\tstruct irq_source *is;\n+\n+\tlock(&irq_lock);\n+\tlist_for_each(&irq_sources, is, link)\n+\t\tcb(is, data);\n+\tlist_for_each(&irq_sources2, is, link)\n+\t\tcb(is, data);\n+\tunlock(&irq_lock);\n+}\n+\n /*\n * This takes a 6-bit chip id and returns a 20 bit value representing\n * the PSI interrupt. This includes all the fields above, ie, is a\ndiff --git a/include/interrupts.h b/include/interrupts.h\nindex 7576610..0376e8f 100644\n--- a/include/interrupts.h\n+++ b/include/interrupts.h\n@@ -301,6 +301,12 @@ extern void register_irq_source(const struct irq_source_ops *ops, void *data,\n extern void unregister_irq_source(uint32_t start, uint32_t count);\n extern struct irq_source *irq_find_source(uint32_t isn);\n \n+/* Warning: callback is called with internal source lock held\n+ * so don't call back into any of our irq_ APIs from it\n+ */\n+extern void irq_for_each_source(void (*cb)(struct irq_source *, void *),\n+\t\t\t\tvoid *data);\n+\n extern uint32_t get_psi_interrupt(uint32_t chip_id);\n \n extern struct dt_node *add_ics_node(void);\n", "prefixes": [ "1/2" ] }