mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [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®