All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 4/9] ARM: gemini: fix race in installing GPIO chained IRQ handler
@ 2015-06-16 22:06 ` Russell King
  0 siblings, 0 replies; 5+ 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] 5+ messages in thread

* [PATCH 4/9] ARM: gemini: fix race in installing GPIO chained IRQ handler
@ 2015-06-16 22:06 ` Russell King
  0 siblings, 0 replies; 5+ messages in thread
From: Russell King @ 2015-06-16 22:06 UTC (permalink / raw)
  To: linux-arm-kernel

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

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [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
  -1 siblings, 0 replies; 5+ 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] 5+ messages in thread

* [PATCH 4/9] ARM: gemini: fix race in installing GPIO chained IRQ handler
@ 2015-06-17 17:23   ` Hans Ulli Kroll
  0 siblings, 0 replies; 5+ messages in thread
From: Hans Ulli Kroll @ 2015-06-17 17:23 UTC (permalink / raw)
  To: linux-arm-kernel



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] 5+ messages in thread

* [tip:irq/core] ARM: gemini: Fix race in installing GPIO chained IRQ handler
  2015-06-16 22:06 ` Russell King
  (?)
  (?)
@ 2015-06-18 12:07 ` tip-bot for Russell King
  -1 siblings, 0 replies; 5+ messages in thread
From: tip-bot for Russell King @ 2015-06-18 12:07 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: ulli.kroll, linux-kernel, gnurou, mingo, linus.walleij, jason,
	hpa, tglx, thierry.reding, rmk+kernel, lee.jones

Commit-ID:  7f77c5c39d2eb50e7362f29f654a2c221b6a5b83
Gitweb:     http://git.kernel.org/tip/7f77c5c39d2eb50e7362f29f654a2c221b6a5b83
Author:     Russell King <rmk+kernel@arm.linux.org.uk>
AuthorDate: Tue, 16 Jun 2015 23:06:35 +0100
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Thu, 18 Jun 2015 14:03:08 +0200

ARM: gemini: Fix race in installing GPIO chained IRQ handler

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>
Cc: Alexandre Courbot <gnurou@gmail.com>
Cc: Hans Ulli Kroll <ulli.kroll@googlemail.com>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: linux-arm-kernel@lists.infradead.org
Link: http://lkml.kernel.org/r/E1Z4z07-0002SO-Gv@rmk-PC.arm.linux.org.uk
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 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 f8cb571..3292f2e 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));

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-06-18 12:07 UTC | newest]

Thread overview: 5+ 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-16 22:06 ` Russell King
2015-06-17 17:23 ` Hans Ulli Kroll
2015-06-17 17:23   ` Hans Ulli Kroll
2015-06-18 12:07 ` [tip:irq/core] ARM: gemini: Fix " tip-bot for Russell King

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.