From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753435AbbINMvF (ORCPT ); Mon, 14 Sep 2015 08:51:05 -0400 Received: from foss.arm.com ([217.140.101.70]:45881 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751816AbbINMvB (ORCPT ); Mon, 14 Sep 2015 08:51:01 -0400 Message-ID: <55F6C2B2.2060808@arm.com> Date: Mon, 14 Sep 2015 13:50:58 +0100 From: Marc Zyngier Organization: ARM Ltd User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.7.0 MIME-Version: 1.0 To: Yang Yingliang , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org CC: Jiang Liu , Thomas Gleixner , Mark Rutland , Will Deacon , Russell King - ARM Linux Subject: Re: [RFC PATCH v2 1/3] irqchip: GICv3: set non-percpu irqs status with IRQ_MOVE_PCNTXT References: <1442222945-10628-1-git-send-email-yangyingliang@huawei.com> <1442222945-10628-2-git-send-email-yangyingliang@huawei.com> In-Reply-To: <1442222945-10628-2-git-send-email-yangyingliang@huawei.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 14/09/15 10:29, Yang Yingliang wrote: > Use irq_set_status_flags() helper set irqs status with > IRQ_MOVE_PCNTXT. So that it can do set affinity when > calling irq_set_affinity_locked(). > > Cc: Jiang Liu > Cc: Thomas Gleixner > Cc: Marc Zyngier > Cc: Mark Rutland > Cc: Will Deacon > Cc: Russell King - ARM Linux > Signed-off-by: Yang Yingliang > --- > drivers/irqchip/irq-gic-v3.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c > index 7deed6e..3d8f400 100644 > --- a/drivers/irqchip/irq-gic-v3.c > +++ b/drivers/irqchip/irq-gic-v3.c > @@ -761,6 +761,7 @@ static int gic_irq_domain_map(struct irq_domain *d, unsigned int irq, > irq_domain_set_info(d, irq, hw, chip, d->host_data, > handle_fasteoi_irq, NULL, NULL); > set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); > + irq_set_status_flags(irq, IRQ_MOVE_PCNTXT); > } > /* LPIs */ > if (hw >= 8192 && hw < GIC_ID_NR) { > @@ -769,6 +770,7 @@ static int gic_irq_domain_map(struct irq_domain *d, unsigned int irq, > irq_domain_set_info(d, irq, hw, chip, d->host_data, > handle_fasteoi_irq, NULL, NULL); > set_irq_flags(irq, IRQF_VALID); > + irq_set_status_flags(irq, IRQ_MOVE_PCNTXT); > } > > return 0; > I'm still not keen on this approach. As far as I can tell, the only reason you are setting this flag is to be able to use GENERIC_PENDING_IRQ. irq_set_affinity_locked would work even if you don't select this config option, because irq_can_move_pcntxt() will always return true if this is not selected. So instead of adding flags that are not required on ARM, why don't you just make migration.c to compile even when GENERIC_PENDING_IRQ is not selected? I think this would make a lot more sense. Thanks, M. -- Jazz is not dead. It just smells funny...