From patchwork Fri Jan 29 16:37:02 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Noam Camus X-Patchwork-Id: 575699 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2001:1868:205::9]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 122F314032B for ; Sat, 30 Jan 2016 03:37:32 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=ezchip.onmicrosoft.com header.i=@ezchip.onmicrosoft.com header.b=MWLMXrGV; dkim-atps=neutral Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1aPC38-0000K8-JL; Fri, 29 Jan 2016 16:37:30 +0000 Received: from mail-db3on0067.outbound.protection.outlook.com ([157.55.234.67] helo=emea01-db3-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1aPC35-0000Dj-B4 for linux-snps-arc@lists.infradead.org; Fri, 29 Jan 2016 16:37:29 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ezchip.onmicrosoft.com; s=selector1-ezchip-com; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=QX3+AJ1EZ38j9YyFD/8OenXcNQHodfN6QGapjz0IGes=; b=MWLMXrGVloX8Q8Dj3flGoSTxCvnjvaxNOf0JUr4KxxzRV/bPw50Z42F8/87QEkONBGHmejAhKJENAfupH12xKDEE3dWrPMS7xEb4rlZzXHeqtx3cRA6jpP6+hTVdNloaFCzdLqiomhUbheWhQvrMwOiHTa2KKiewqANmT+ozvWc= Received: from HE1PR02MB1387.eurprd02.prod.outlook.com (10.169.116.25) by DB3PR02MB123.eurprd02.prod.outlook.com (10.141.3.21) with Microsoft SMTP Server (TLS) id 15.1.390.13; Fri, 29 Jan 2016 16:37:03 +0000 Received: from HE1PR02MB1387.eurprd02.prod.outlook.com ([10.169.116.25]) by HE1PR02MB1387.eurprd02.prod.outlook.com ([10.169.116.25]) with mapi id 15.01.0396.016; Fri, 29 Jan 2016 16:37:02 +0000 From: Noam Camus To: Vineet Gupta , Marc Zyngier , "linux-snps-arc@lists.infradead.org" Subject: Re: [PATCH v4 05/19] irqchip: add nps Internal and external irqchips Thread-Topic: [PATCH v4 05/19] irqchip: add nps Internal and external irqchips Thread-Index: AQHRN57T6z+6xXe8LkyllNMp2B1hJ57NWbAAgAGP8MCAAbOOgIAALFLwgAAqV4CAO3/oAIAGgoD7 Date: Fri, 29 Jan 2016 16:37:02 +0000 Message-ID: References: <1450228238-4499-1-git-send-email-noamc@ezchip.com> <1450228238-4499-6-git-send-email-noamc@ezchip.com> <56712F50.6050404@arm.com> <5673EC2D.5040307@arm.com> <567434DF.2030201@arm.com>,<56A61E52.3050505@synopsys.com> In-Reply-To: <56A61E52.3050505@synopsys.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: synopsys.com; dkim=none (message not signed) header.d=none; synopsys.com; dmarc=none action=none header.from=ezchip.com; x-originating-ip: [213.57.226.16] x-microsoft-exchange-diagnostics: 1; DB3PR02MB123; 5:xgDB5nbv+wxBEtzN339SSI91ccl36CbRniYAHYIIe7A9ScUJ7zt9UwkhY9vC/TZnb0BXRb6yqqXnDDxc0C+y/9coEZDvG0mPSVDkBeyJJ3g4IqU9sY79nioJZg4hKk2cq56OZoBZ9px3qCLA96sKuw==; 24:xfVL9G505KRWJcX8n7bMQndcX+9jROQArgd7PTCemjQmmR8TIqpnKUqSJSy9j4mSaPXMsHDrfCLXtLXgAR7Uw0akfunyOv4eibbq7i+dySY= x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB3PR02MB123; x-ms-office365-filtering-correlation-id: 55883cf9-9beb-46e6-6119-08d328ca6ac6 x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(180628864354917); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001); SRVR:DB3PR02MB123; BCL:0; PCL:0; RULEID:; SRVR:DB3PR02MB123; x-forefront-prvs: 083691450C x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(377454003)(479174004)(24454002)(5001770100001)(3280700002)(2906002)(4326007)(5004730100002)(93886004)(10400500002)(74316001)(76576001)(87936001)(2950100001)(66066001)(92566002)(102836003)(586003)(6116002)(3846002)(575784001)(86362001)(33656002)(2900100001)(1096002)(5002640100001)(3660700001)(189998001)(3470700001)(40100003)(122556002)(1220700001)(2501003)(15975445007)(5001960100002)(19580395003)(5003600100002)(106116001)(77096005)(19580405001)(5008740100001)(54356999)(76176999)(50986999); DIR:OUT; SFP:1101; SCL:1; SRVR:DB3PR02MB123; H:HE1PR02MB1387.eurprd02.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en; spamdiagnosticoutput: 1:23 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: ezchip.com X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jan 2016 16:37:02.2699 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 0fc16e0a-3cd3-4092-8b2f-0a42cff122c3 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR02MB123 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20160129_083727_907349_9CB18FF9 X-CRM114-Status: GOOD ( 24.50 ) X-Spam-Score: -1.9 (-) X-Spam-Report: SpamAssassin version 3.4.0 on bombadil.infradead.org summary: Content analysis details: (-1.9 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [157.55.234.67 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [157.55.234.67 listed in wl.mailspike.net] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature X-BeenThere: linux-snps-arc@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Linux on Synopsys ARC Processors List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Chris Metcalf , "daniel.lezcano@linaro.org" , Thomas Gleixner , "linux-kernel@vger.kernel.org" , Jason Cooper Sender: "linux-snps-arc" Errors-To: linux-snps-arc-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Hi Marc, Please respond to Vineet last email. I wish to close the IPI handling within my patch set. Regards, Noam diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig index 6312f607932f..576f1c40ba75 100644 --- a/arch/arc/Kconfig +++ b/arch/arc/Kconfig @@ -31,6 +31,7 @@ config ARC select HAVE_MOD_ARCH_SPECIFIC if ARC_DW2_UNWIND select HAVE_OPROFILE select HAVE_PERF_EVENTS + select HANDLE_DOMAIN_IRQ select IRQ_DOMAIN select MODULES_USE_ELF_RELA select NO_BOOTMEM diff --git a/arch/arc/kernel/intc-arcv2.c b/arch/arc/kernel/intc-arcv2.c index 0394f9f61b46..cede73b50d31 100644 --- a/arch/arc/kernel/intc-arcv2.c +++ b/arch/arc/kernel/intc-arcv2.c @@ -130,21 +130,24 @@ static const struct irq_domain_ops arcv2_irq_ops = { .map = arcv2_irq_map, }; -static struct irq_domain *root_domain; static int __init init_onchip_IRQ(struct device_node *intc, struct device_node *parent) { + struct irq_domain *root_domain; + if (parent) panic("DeviceTree incore intc not a root irq controller\n"); root_domain = irq_domain_add_legacy(intc, NR_CPU_IRQS, 0, 0, &arcv2_irq_ops, NULL); - if (!root_domain) panic("root irq domain not avail\n"); - /* with this we don't need to export root_domain */ + /* + * Needed for primary domain lookup to succeed + * This is a primary irqchip, and can never have a parent + */ irq_set_default_host(root_domain); return 0; diff --git a/arch/arc/kernel/intc-compact.c b/arch/arc/kernel/intc-compact.c index 06bcedf19b62..c2df66624bbb 100644 --- a/arch/arc/kernel/intc-compact.c +++ b/arch/arc/kernel/intc-compact.c @@ -97,21 +97,23 @@ static const struct irq_domain_ops arc_intc_domain_ops = { .map = arc_intc_domain_map, }; -static struct irq_domain *root_domain; - static int __init init_onchip_IRQ(struct device_node *intc, struct device_node *parent) { + struct irq_domain *root_domain; + if (parent) panic("DeviceTree incore intc not a root irq controller\n"); root_domain = irq_domain_add_legacy(intc, NR_CPU_IRQS, 0, 0, &arc_intc_domain_ops, NULL); - if (!root_domain) panic("root irq domain not avail\n"); - /* with this we don't need to export root_domain */ + /* + * Needed for primary domain lookup to succeed + * This is a primary irqchip, and can never have a parent + */ irq_set_default_host(root_domain); return 0; diff --git a/arch/arc/kernel/irq.c b/arch/arc/kernel/irq.c index ba17f85285cf..5c027005039b 100644 --- a/arch/arc/kernel/irq.c +++ b/arch/arc/kernel/irq.c @@ -41,14 +41,9 @@ void __init init_IRQ(void) * "C" Entry point for any ARC ISR, called from low level vector handler * @irq is the vector number read from ICAUSE reg of on-chip intc */ -void arch_do_IRQ(unsigned int irq, struct pt_regs *regs) +void arch_do_IRQ(unsigned int hwirq, struct pt_regs *regs) { - struct pt_regs *old_regs = set_irq_regs(regs); - - irq_enter(); - generic_handle_irq(irq); - irq_exit(); - set_irq_regs(old_regs); + handle_domain_irq(NULL, hwirq, regs); } /*