From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans Ulli Kroll Subject: Re: [PATCH 4/9] ARM: gemini: fix race in installing GPIO chained IRQ handler Date: Wed, 17 Jun 2015 19:23:14 +0200 (CEST) Message-ID: References: Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Return-path: In-Reply-To: Sender: linux-gpio-owner@vger.kernel.org To: Russell King Cc: linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org, linux-tegra@vger.kernel.org, Thomas Gleixner , Alexandre Courbot , Hans Ulli Kroll , Jason Cooper , Lee Jones , Linus Walleij , Thierry Reding List-Id: linux-tegra@vger.kernel.org On Tue, 16 Jun 2015, Russell King wrote: > The gemini code was installing its chained interrupt handler (which > enables the interrupt) before it was setting its data, which is bad if > the IRQ was previously pending. Avoid this problem by converting it to > irq_set_chained_handler_and_data(). > > Signed-off-by: Russell King > --- > Depends on patch 1. > > arch/arm/mach-gemini/gpio.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/mach-gemini/gpio.c b/arch/arm/mach-gemini/gpio.c > index f8cb5710d6ee..3292f2e6ed6f 100644 > --- a/arch/arm/mach-gemini/gpio.c > +++ b/arch/arm/mach-gemini/gpio.c > @@ -223,8 +223,8 @@ void __init gemini_gpio_init(void) > set_irq_flags(j, IRQF_VALID); > } > > - irq_set_chained_handler(IRQ_GPIO(i), gpio_irq_handler); > - irq_set_handler_data(IRQ_GPIO(i), (void *)i); > + irq_set_chained_handler_and_data(IRQ_GPIO(i), gpio_irq_handler, > + (void *)i); > } > > BUG_ON(gpiochip_add(&gemini_gpio_chip)); > -- > 2.1.0 > > Acked-by: Hans Ulli Kroll