* [PATCH] genirq: don't allow per cpu interrupts to be suspended
@ 2011-11-08 14:48 Marc Zyngier
2011-11-08 14:55 ` Shilimkar, Santosh
0 siblings, 1 reply; 2+ messages in thread
From: Marc Zyngier @ 2011-11-08 14:48 UTC (permalink / raw)
To: linux-arm-kernel, linux-kernel; +Cc: Thomas Gleixner
The power management functions related to interrupts do not know
(yet) about per-cpu interrupts and end up calling the wrong
low-level methods to enable/disable interrupts.
This leads to all kind of interesting issues (action taken on one
CPU only, updating a refcount which is not used otherwise...).
The workaround for the time being is simply to flag these interrupts
with IRQF_NO_SUSPEND. At least on ARM, these interrupts are actually
dealt with at the architecture level.
Reported-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
---
kernel/irq/manage.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 67ce837..0e2b179 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -1596,7 +1596,7 @@ int request_percpu_irq(unsigned int irq, irq_handler_t handler,
return -ENOMEM;
action->handler = handler;
- action->flags = IRQF_PERCPU;
+ action->flags = IRQF_PERCPU | IRQF_NO_SUSPEND;
action->name = devname;
action->percpu_dev_id = dev_id;
--
1.7.0.4
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] genirq: don't allow per cpu interrupts to be suspended
2011-11-08 14:48 [PATCH] genirq: don't allow per cpu interrupts to be suspended Marc Zyngier
@ 2011-11-08 14:55 ` Shilimkar, Santosh
0 siblings, 0 replies; 2+ messages in thread
From: Shilimkar, Santosh @ 2011-11-08 14:55 UTC (permalink / raw)
To: Marc Zyngier; +Cc: linux-arm-kernel, linux-kernel, Thomas Gleixner
On Tue, Nov 8, 2011 at 8:18 PM, Marc Zyngier <marc.zyngier@arm.com> wrote:
> The power management functions related to interrupts do not know
> (yet) about per-cpu interrupts and end up calling the wrong
> low-level methods to enable/disable interrupts.
>
> This leads to all kind of interesting issues (action taken on one
> CPU only, updating a refcount which is not used otherwise...).
>
> The workaround for the time being is simply to flag these interrupts
> with IRQF_NO_SUSPEND. At least on ARM, these interrupts are actually
> dealt with at the architecture level.
>
> Reported-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
> ---
Just to add, the suspend is broken on mainline
for ARM machines which are using IRQCHIP_MASK_ON_SUSPEND.
The $subject patch fixes that issue.
Tested-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Regards,
Santosh
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-11-08 14:55 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-11-08 14:48 [PATCH] genirq: don't allow per cpu interrupts to be suspended Marc Zyngier
2011-11-08 14:55 ` Shilimkar, Santosh
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®