Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753624AbbETOt0 (ORCPT ); Wed, 20 May 2015 10:49:26 -0400 Received: from www.linutronix.de ([62.245.132.108]:33150 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752969AbbETOtU (ORCPT ); Wed, 20 May 2015 10:49:20 -0400 Date: Wed, 20 May 2015 16:48:39 +0200 (CEST) From: Thomas Gleixner To: Jiang Liu cc: Bjorn Helgaas , Benjamin Herrenschmidt , Ingo Molnar , "H. Peter Anvin" , "Rafael J. Wysocki" , Randy Dunlap , Yinghai Lu , Borislav Petkov , "David S. Miller" , x86@kernel.org, Linus Walleij , Alexandre Courbot , Simon Horman , Magnus Damm , bob picco , Jason Cooper , Kevin Cernekee , Arnd Bergmann , Marc Zyngier , Konrad Rzeszutek Wilk , Tony Luck , linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-acpi@vger.kernel.org, sparclinux@vger.kernel.org, linux-gpio@vger.kernel.org, linux-sh@vger.kernel.org Subject: Re: [Patch v2 06/14] genirq: Move field 'handler_data' from struct irq_data into struct irq_common_data In-Reply-To: <1432114845-24304-7-git-send-email-jiang.liu@linux.intel.com> Message-ID: References: <1432114845-24304-1-git-send-email-jiang.liu@linux.intel.com> <1432114845-24304-7-git-send-email-jiang.liu@linux.intel.com> User-Agent: Alpine 2.11 (DEB 23 2013-08-11) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2658 Lines: 82 On Wed, 20 May 2015, Jiang Liu wrote: > Handler data (handler_data) is per-irq instead of per irqchip, so move > it into struct irq_common_data. For review and debugging sake, please do the same split as you did with node. Convert first and then move. 5 patches this time: Sparc: > arch/sparc/kernel/irq_64.c | 15 +++++++++------ > arch/sparc/kernel/sun4d_irq.c | 4 ++-- > arch/sparc/kernel/sun4m_irq.c | 6 ++++-- x86: > arch/x86/kernel/apic/msi.c | 2 +- > arch/x86/kernel/hpet.c | 4 ++-- gpio: > drivers/gpio/gpio-davinci.c | 2 +- sh: > drivers/sh/intc/virq.c | 4 ++-- Move: > include/linux/irq.h | 8 ++++---- > include/linux/irqdesc.h | 2 +- > kernel/irq/chip.c | 2 +- > kernel/irq/irqdesc.c | 3 ++- > diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c > index c5e05c82d67c..477d5b8616ab 100644 > --- a/drivers/gpio/gpio-davinci.c > +++ b/drivers/gpio/gpio-davinci.c > @@ -396,7 +396,7 @@ static int gpio_irq_type_unbanked(struct irq_data *data, unsigned trigger) > struct davinci_gpio_regs __iomem *g; > u32 mask; > > - d = (struct davinci_gpio_controller *)data->handler_data; > + d = (struct davinci_gpio_controller *)irq_data_get_irq_handler_data(data); This type cast is silly, handler_data is (void *) > g = (struct davinci_gpio_regs __iomem *)d->regs; > mask = __gpio_mask(data->irq - d->gpio_irq); > > diff --git a/drivers/sh/intc/virq.c b/drivers/sh/intc/virq.c > index f30ac9354ff2..3dbc21696924 100644 > --- a/drivers/sh/intc/virq.c > +++ b/drivers/sh/intc/virq.c > @@ -87,8 +87,8 @@ static int add_virq_to_pirq(unsigned int irq, unsigned int virq) > struct irq_data *data = irq_get_irq_data(irq); > > /* scan for duplicates */ > - last = (struct intc_virq_list **)&data->handler_data; > - for_each_virq(entry, data->handler_data) { > + last = (struct intc_virq_list **)&data->common->handler_data; That does not make sense. You convert the one below, but not that one to the accessor function. handler_data is a pointer to a struct intc_virq_list. So struct intc_virq_list **last, *entry, *head; head = irq_data_get_irq_handler_data(data); last = &head; for_each_virq(entry, head) { .... } Would be clean code and lets you convert all usage sites of data->handler_data before actually doing the move to common data. Thanks, tglx -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/