* [PATCH 9/9] irq: spear-shirq: fix race in installing chained IRQ handler
@ 2015-06-16 22:07 ` Russell King
0 siblings, 0 replies; 5+ messages in thread
From: Russell King @ 2015-06-16 22:07 UTC (permalink / raw
To: linux-arm-kernel
Fix a race where a pending interrupt could be received and the handler
called before the handler's data has been setup, by converting to
irq_set_chained_handler_and_data().
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
Depends on patch 1.
drivers/irqchip/spear-shirq.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/irqchip/spear-shirq.c b/drivers/irqchip/spear-shirq.c
index 9c145a7cb056..a45121546caf 100644
--- a/drivers/irqchip/spear-shirq.c
+++ b/drivers/irqchip/spear-shirq.c
@@ -207,8 +207,7 @@ static void __init spear_shirq_register(struct spear_shirq *shirq,
if (!shirq->irq_chip)
return;
- irq_set_chained_handler(parent_irq, shirq_handler);
- irq_set_handler_data(parent_irq, shirq);
+ irq_set_chained_handler_and_data(parent_irq, shirq_handler, shirq);
for (i = 0; i < shirq->nr_irqs; i++) {
irq_set_chip_and_handler(shirq->virq_base + i,
--
2.1.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 9/9] irq: spear-shirq: fix race in installing chained IRQ handler
@ 2015-06-16 22:07 ` Russell King
0 siblings, 0 replies; 5+ messages in thread
From: Russell King @ 2015-06-16 22:07 UTC (permalink / raw
To: linux-arm-kernel, linux-gpio, linux-tegra, Thomas Gleixner
Cc: Alexandre Courbot, Hans Ulli Kroll, Jason Cooper, Lee Jones,
Linus Walleij, Thierry Reding
Fix a race where a pending interrupt could be received and the handler
called before the handler's data has been setup, by converting to
irq_set_chained_handler_and_data().
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
Depends on patch 1.
drivers/irqchip/spear-shirq.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/irqchip/spear-shirq.c b/drivers/irqchip/spear-shirq.c
index 9c145a7cb056..a45121546caf 100644
--- a/drivers/irqchip/spear-shirq.c
+++ b/drivers/irqchip/spear-shirq.c
@@ -207,8 +207,7 @@ static void __init spear_shirq_register(struct spear_shirq *shirq,
if (!shirq->irq_chip)
return;
- irq_set_chained_handler(parent_irq, shirq_handler);
- irq_set_handler_data(parent_irq, shirq);
+ irq_set_chained_handler_and_data(parent_irq, shirq_handler, shirq);
for (i = 0; i < shirq->nr_irqs; i++) {
irq_set_chip_and_handler(shirq->virq_base + i,
--
2.1.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 9/9] irq: spear-shirq: fix race in installing chained IRQ handler
@ 2015-06-17 2:40 ` Viresh Kumar
0 siblings, 0 replies; 5+ messages in thread
From: Viresh Kumar @ 2015-06-17 2:40 UTC (permalink / raw
To: linux-arm-kernel
On Wed, Jun 17, 2015 at 3:37 AM, Russell King
<rmk+kernel@arm.linux.org.uk> wrote:
> Fix a race where a pending interrupt could be received and the handler
> called before the handler's data has been setup, by converting to
> irq_set_chained_handler_and_data().
>
> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
> ---
> Depends on patch 1.
>
> drivers/irqchip/spear-shirq.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/irqchip/spear-shirq.c b/drivers/irqchip/spear-shirq.c
> index 9c145a7cb056..a45121546caf 100644
> --- a/drivers/irqchip/spear-shirq.c
> +++ b/drivers/irqchip/spear-shirq.c
> @@ -207,8 +207,7 @@ static void __init spear_shirq_register(struct spear_shirq *shirq,
> if (!shirq->irq_chip)
> return;
>
> - irq_set_chained_handler(parent_irq, shirq_handler);
> - irq_set_handler_data(parent_irq, shirq);
> + irq_set_chained_handler_and_data(parent_irq, shirq_handler, shirq);
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 9/9] irq: spear-shirq: fix race in installing chained IRQ handler
@ 2015-06-17 2:40 ` Viresh Kumar
0 siblings, 0 replies; 5+ messages in thread
From: Viresh Kumar @ 2015-06-17 2:40 UTC (permalink / raw
To: Russell King
Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
linux-gpio-u79uwXL29TY76Z2rM5mHXA,
linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Thomas Gleixner, Alexandre Courbot, Jason Cooper, Hans Ulli Kroll,
Thierry Reding, Lee Jones, Linus Walleij
On Wed, Jun 17, 2015 at 3:37 AM, Russell King
<rmk+kernel-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org> wrote:
> Fix a race where a pending interrupt could be received and the handler
> called before the handler's data has been setup, by converting to
> irq_set_chained_handler_and_data().
>
> Signed-off-by: Russell King <rmk+kernel-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>
> ---
> Depends on patch 1.
>
> drivers/irqchip/spear-shirq.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/irqchip/spear-shirq.c b/drivers/irqchip/spear-shirq.c
> index 9c145a7cb056..a45121546caf 100644
> --- a/drivers/irqchip/spear-shirq.c
> +++ b/drivers/irqchip/spear-shirq.c
> @@ -207,8 +207,7 @@ static void __init spear_shirq_register(struct spear_shirq *shirq,
> if (!shirq->irq_chip)
> return;
>
> - irq_set_chained_handler(parent_irq, shirq_handler);
> - irq_set_handler_data(parent_irq, shirq);
> + irq_set_chained_handler_and_data(parent_irq, shirq_handler, shirq);
Acked-by: Viresh Kumar <viresh.kumar-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [tip:irq/core] irq: spear-shirq: Fix race in installing chained IRQ handler
2015-06-16 22:07 ` Russell King
(?)
(?)
@ 2015-06-18 12:08 ` tip-bot for Russell King
-1 siblings, 0 replies; 5+ messages in thread
From: tip-bot for Russell King @ 2015-06-18 12:08 UTC (permalink / raw
To: linux-tip-commits
Cc: linus.walleij, tglx, linux-kernel, thierry.reding, jason,
lee.jones, rmk+kernel, gnurou, hpa, mingo, ulli.kroll
Commit-ID: 2aedd0fdc69467b1544773acf08333c6f0027e42
Gitweb: http://git.kernel.org/tip/2aedd0fdc69467b1544773acf08333c6f0027e42
Author: Russell King <rmk+kernel@arm.linux.org.uk>
AuthorDate: Tue, 16 Jun 2015 23:07:01 +0100
Committer: Thomas Gleixner <tglx@linutronix.de>
CommitDate: Thu, 18 Jun 2015 14:03:09 +0200
irq: spear-shirq: Fix race in installing chained IRQ handler
Fix a race where a pending interrupt could be received and the handler
called before the handler's data has been setup, by converting 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/E1Z4z0X-0002T1-6U@rmk-PC.arm.linux.org.uk
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
drivers/irqchip/spear-shirq.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/irqchip/spear-shirq.c b/drivers/irqchip/spear-shirq.c
index 9c145a7..a451215 100644
--- a/drivers/irqchip/spear-shirq.c
+++ b/drivers/irqchip/spear-shirq.c
@@ -207,8 +207,7 @@ static void __init spear_shirq_register(struct spear_shirq *shirq,
if (!shirq->irq_chip)
return;
- irq_set_chained_handler(parent_irq, shirq_handler);
- irq_set_handler_data(parent_irq, shirq);
+ irq_set_chained_handler_and_data(parent_irq, shirq_handler, shirq);
for (i = 0; i < shirq->nr_irqs; i++) {
irq_set_chip_and_handler(shirq->virq_base + i,
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-06-18 12:10 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:07 [PATCH 9/9] irq: spear-shirq: fix race in installing chained IRQ handler Russell King
2015-06-16 22:07 ` Russell King
2015-06-17 2:40 ` Viresh Kumar
2015-06-17 2:40 ` Viresh Kumar
2015-06-18 12:08 ` [tip:irq/core] irq: spear-shirq: 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.