Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp2242545ybb; Mon, 30 Mar 2020 02:20:14 -0700 (PDT) X-Google-Smtp-Source: ADFU+vs+PRL+1+VKiTVSjhYMASOSPayeqv+iz1q9FkXCXkautB0/SKfW5txxBFjwEUkJyXfKV6fv X-Received: by 2002:a4a:da03:: with SMTP id e3mr8983998oou.4.1585560014739; Mon, 30 Mar 2020 02:20:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585560014; cv=none; d=google.com; s=arc-20160816; b=G3TZimTRyUfCjpXqLq4InmSPKrHC3fYvz5KWpF+Bjdgg7VozMghqvkV6BmYnySO2vo +TeceBNzyYKsgeeMOc/ut7iGshjMJmLiJqKDz14GOF/LiyeRb6iJEX5/G4+u+VH2f1B7 no1blPUDC3xEbXxPXErNAMCzSULcyvBjiqgCG2C60N8bU+BuvGzUDWZan4wgssW4ghWV 7039EY93r0SZ6UwExPD13s72vhsfCXEIKrI5cIVI73aS6OUsFJQ/TZYqPrMWJcWIEBuD GeZOPLRNtzll/5TKerVGMdEk1Q/6RvF9DKIJpaiClXcIpo6VVmSHGg0S+lwD4/UwVcdw OJeA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:message-id:references :in-reply-to:subject:cc:to:from:date:content-transfer-encoding :mime-version:dkim-signature; bh=G22j/hKgXyQfgBmk30pRq8eqP3ktqbX9AutL2xDYtuk=; b=HJjhWTjtdftG9Ej/FtUadDbQ8Kzt3YR2haXeRxDJXx/eqZ4LEJqiGgkmPZ8WfuaseG 9TfVoADcT6bP+XboPVMaGF3yYkuWYmkWH6mryHM34MsAqk4M8kwMihArW7RqkZhvMD70 uWwfdSF9OIPJz4jZX9EIKi5JuaeDdsTTcSI9QjMHc+/UV9/U65me2d4UwMpp1QoapgvJ CV31P97KEiEeuDHUKARnmvkfgS+CMkGVw3MCx99UAK+4kawZjVHoX12okHVDmOOsqyM+ kd3+7n2e3p29U+iu/zdFc1i8vHu05keOKHuek4tKDYK0VDIpi7nXuCPggxDUHB24sev9 fxzw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Z4V818Bz; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u3si5390952otq.177.2020.03.30.02.20.02; Mon, 30 Mar 2020 02:20:14 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Z4V818Bz; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728486AbgC3JTh (ORCPT + 99 others); Mon, 30 Mar 2020 05:19:37 -0400 Received: from mail.kernel.org ([198.145.29.99]:34884 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727943AbgC3JTg (ORCPT ); Mon, 30 Mar 2020 05:19:36 -0400 Received: from disco-boy.misterjones.org (disco-boy.misterjones.org [51.254.78.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 648DF20716; Mon, 30 Mar 2020 09:19:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1585559975; bh=BEMJImsgD27QGlIhCOTQO98o8mVJJpJscxhbONLw4IY=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=Z4V818BzjGCIael0YuGIjvRDWWHR3zNSyOg8ogQyugr3RcDGczPFj5gIca7hGHFOz nue3dZaWO5+/orQl7iaRlOcCsznPCuUAzSRDiCYr0vvsWo2G6tF3Y/a/ktBdZHJHgN znWqlS6frMSY9/OJ9A8V4O1uDQDnR9hLabQE1/8c= Received: from disco-boy.misterjones.org ([51.254.78.96] helo=www.loen.fr) by disco-boy.misterjones.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1jIqZx-00GpIg-Mr; Mon, 30 Mar 2020 10:19:33 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Mon, 30 Mar 2020 10:19:33 +0100 From: Marc Zyngier To: Michal Simek Cc: linux-kernel@vger.kernel.org, linux-tip-commits@vger.kernel.org, Thomas Gleixner , Stefan Asserhall , x86 , Stephen Rothwell Subject: Re: [tip: irq/core] irqchip/xilinx: Enable generic irq multi handler In-Reply-To: References: <20200317125600.15913-4-mubin.usman.sayyed@xilinx.com> <158551357076.28353.1716269552245308352.tip-bot2@tip-bot2> <083ad708-ea4d-ed53-598e-84d911ca4177@xilinx.com> <085188fea81d5ddc88b488124596a4a3@kernel.org> <895eba40-2e77-db1b-ea82-035c05f0b77e@xilinx.com> Message-ID: <21f1157d885071dcfdb1de0847c19e24@kernel.org> X-Sender: maz@kernel.org User-Agent: Roundcube Webmail/1.3.10 X-SA-Exim-Connect-IP: 51.254.78.96 X-SA-Exim-Rcpt-To: michal.simek@xilinx.com, linux-kernel@vger.kernel.org, linux-tip-commits@vger.kernel.org, tglx@linutronix.de, stefan.asserhall@xilinx.com, x86@kernel.org, sfr@canb.auug.org.au X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2020-03-30 10:12, Michal Simek wrote: > On 30. 03. 20 11:03, Michal Simek wrote: >> On 30. 03. 20 10:45, Marc Zyngier wrote: >>> On 2020-03-30 09:32, Michal Simek wrote: >>>> Hi Thomas and Marc, >>>> >>>> On 29. 03. 20 22:26, tip-bot2 for Michal Simek wrote: >>>>> The following commit has been merged into the irq/core branch of >>>>> tip: >>>>> >>>>> Commit-ID:     a0789993bf8266e62fea6b4613945ba081c71e7d >>>>> Gitweb:        >>>>> https://git.kernel.org/tip/a0789993bf8266e62fea6b4613945ba081c71e7d >>>>> Author:        Michal Simek >>>>> AuthorDate:    Tue, 17 Mar 2020 18:25:59 +05:30 >>>>> Committer:     Marc Zyngier >>>>> CommitterDate: Sun, 22 Mar 2020 11:52:53 >>>>> >>>>> irqchip/xilinx: Enable generic irq multi handler >>>>> >>>>> Register default arch handler via driver instead of directly >>>>> pointing to >>>>> xilinx intc controller. This patch makes architecture code more >>>>> generic. >>>>> >>>>> Driver calls generic domain specific irq handler which does the >>>>> most of >>>>> things self. Also get rid of concurrent_irq counting which hasn't >>>>> been >>>>> exported anywhere. >>>>> Based on this loop was also optimized by using do/while loop >>>>> instead of >>>>> goto loop. >>>>> >>>>> Signed-off-by: Michal Simek >>>>> Signed-off-by: Marc Zyngier >>>>> Reviewed-by: Stefan Asserhall >>>>> Link: >>>>> https://lore.kernel.org/r/20200317125600.15913-4-mubin.usman.sayyed@xilinx.com >>>>> >>>>> --- >>>>>  arch/microblaze/Kconfig           |  2 ++- >>>>>  arch/microblaze/include/asm/irq.h |  3 +--- >>>>>  arch/microblaze/kernel/irq.c      | 21 +------------------- >>>>>  drivers/irqchip/irq-xilinx-intc.c | 34 >>>>> +++++++++++++++++------------- >>>>>  4 files changed, 23 insertions(+), 37 deletions(-) >>>>> >>>>> diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig >>>>> index 6a331bd..242f58e 100644 >>>>> --- a/arch/microblaze/Kconfig >>>>> +++ b/arch/microblaze/Kconfig >>>>> @@ -47,6 +47,8 @@ config MICROBLAZE >>>>>      select CPU_NO_EFFICIENT_FFS >>>>>      select MMU_GATHER_NO_RANGE if MMU >>>>>      select SPARSE_IRQ >>>>> +    select GENERIC_IRQ_MULTI_HANDLER >>>>> +    select HANDLE_DOMAIN_IRQ >>>>> >>>>>  # Endianness selection >>>>>  choice >>>>> diff --git a/arch/microblaze/include/asm/irq.h >>>>> b/arch/microblaze/include/asm/irq.h >>>>> index eac2fb4..5166f08 100644 >>>>> --- a/arch/microblaze/include/asm/irq.h >>>>> +++ b/arch/microblaze/include/asm/irq.h >>>>> @@ -14,7 +14,4 @@ >>>>>  struct pt_regs; >>>>>  extern void do_IRQ(struct pt_regs *regs); >>>>> >>>>> -/* should be defined in each interrupt controller driver */ >>>>> -extern unsigned int xintc_get_irq(void); >>>>> - >>>>>  #endif /* _ASM_MICROBLAZE_IRQ_H */ >>>>> diff --git a/arch/microblaze/kernel/irq.c >>>>> b/arch/microblaze/kernel/irq.c >>>>> index 903dad8..0b37dde 100644 >>>>> --- a/arch/microblaze/kernel/irq.c >>>>> +++ b/arch/microblaze/kernel/irq.c >>>>> @@ -20,29 +20,10 @@ >>>>>  #include >>>>>  #include >>>>> >>>>> -static u32 concurrent_irq; >>>>> - >>>>>  void __irq_entry do_IRQ(struct pt_regs *regs) >>>>>  { >>>>> -    unsigned int irq; >>>>> -    struct pt_regs *old_regs = set_irq_regs(regs); >>>>>      trace_hardirqs_off(); >>>>> - >>>>> -    irq_enter(); >>>>> -    irq = xintc_get_irq(); >>>>> -next_irq: >>>>> -    BUG_ON(!irq); >>>>> -    generic_handle_irq(irq); >>>>> - >>>>> -    irq = xintc_get_irq(); >>>>> -    if (irq != -1U) { >>>>> -        pr_debug("next irq: %d\n", irq); >>>>> -        ++concurrent_irq; >>>>> -        goto next_irq; >>>>> -    } >>>>> - >>>>> -    irq_exit(); >>>>> -    set_irq_regs(old_regs); >>>>> +    handle_arch_irq(regs); >>>>>      trace_hardirqs_on(); >>>>>  } >>>>> >>>>> diff --git a/drivers/irqchip/irq-xilinx-intc.c >>>>> b/drivers/irqchip/irq-xilinx-intc.c >>>>> index 1d3d273..ea74181 100644 >>>>> --- a/drivers/irqchip/irq-xilinx-intc.c >>>>> +++ b/drivers/irqchip/irq-xilinx-intc.c >>>>> @@ -124,20 +124,6 @@ static unsigned int xintc_get_irq_local(struct >>>>> xintc_irq_chip *irqc) >>>>>      return irq; >>>>>  } >>>>> >>>>> -unsigned int xintc_get_irq(void) >>>>> -{ >>>>> -    unsigned int irq = -1; >>>>> -    u32 hwirq; >>>>> - >>>>> -    hwirq = xintc_read(primary_intc, IVR); >>>>> -    if (hwirq != -1U) >>>>> -        irq = irq_find_mapping(primary_intc->root_domain, hwirq); >>>>> - >>>>> -    pr_debug("irq-xilinx: hwirq=%d, irq=%d\n", hwirq, irq); >>>>> - >>>>> -    return irq; >>>>> -} >>>>> - > > One more thing. We could also get this function back and it will be > fine > too. But up2you. If you leave it up to me, I'll revert the whole series right now. What I'd expect from you is to tell me exactly what is the minimal change that keeps it working on both ARM, microblaze and PPC. If it is a revert, tell me which patches to revert. if it is a patch on top, send me the fix so that I can queue it now. M. -- Jazz is not dead. It just smells funny...