* [PATCH 4/9] ARM: gemini: fix race in installing GPIO chained IRQ handler
@ 2015-06-16 22:06 Russell King
2015-06-17 17:23 ` Hans Ulli Kroll
0 siblings, 1 reply; 2+ messages in thread
From: Russell King @ 2015-06-16 22:06 UTC (permalink / raw)
To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-gpio-u79uwXL29TY76Z2rM5mHXA,
linux-tegra-u79uwXL29TY76Z2rM5mHXA, Thomas Gleixner
Cc: Alexandre Courbot, Hans Ulli Kroll, Jason Cooper, Lee Jones,
Linus Walleij, Thierry Reding
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 <rmk+kernel-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>
---
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
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH 4/9] ARM: gemini: fix race in installing GPIO chained IRQ handler
2015-06-16 22:06 [PATCH 4/9] ARM: gemini: fix race in installing GPIO chained IRQ handler Russell King
@ 2015-06-17 17:23 ` Hans Ulli Kroll
0 siblings, 0 replies; 2+ messages in thread
From: Hans Ulli Kroll @ 2015-06-17 17:23 UTC (permalink / raw)
To: Russell King
Cc: linux-arm-kernel, linux-gpio, linux-tegra, Thomas Gleixner,
Alexandre Courbot, Hans Ulli Kroll, Jason Cooper, Lee Jones,
Linus Walleij, Thierry Reding
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 <rmk+kernel@arm.linux.org.uk>
> ---
> 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 <ulli.kroll@googlemail.com>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-06-17 17:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-16 22:06 [PATCH 4/9] ARM: gemini: fix race in installing GPIO chained IRQ handler Russell King
2015-06-17 17:23 ` Hans Ulli Kroll
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).