powerpc/smp: Do not disable IPI interrupts during suspend
authorZhao Chenhui <chenhui.zhao@freescale.com>
Fri, 20 Jul 2012 12:47:01 +0000 (20:47 +0800)
committerKumar Gala <galak@kernel.crashing.org>
Wed, 19 Sep 2012 13:38:16 +0000 (08:38 -0500)
During suspend, all interrupts including IPI will be disabled. In this case,
the suspend process will hang in SMP. To prevent this, pass the flag
IRQF_NO_SUSPEND when requesting IPI irq.

Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
Signed-off-by: Li Yang <leoli@freescale.com>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
arch/powerpc/kernel/smp.c

index a51ed205016ec2c1fb63c52441e391c927ac4ea9..2b952b5386fd5eae72bcf6a7c8320d1768156277 100644 (file)
@@ -171,7 +171,7 @@ int smp_request_message_ipi(int virq, int msg)
        }
 #endif
        err = request_irq(virq, smp_ipi_action[msg],
-                         IRQF_PERCPU | IRQF_NO_THREAD,
+                         IRQF_PERCPU | IRQF_NO_THREAD | IRQF_NO_SUSPEND,
                          smp_ipi_name[msg], 0);
        WARN(err < 0, "unable to request_irq %d for %s (rc %d)\n",
                virq, smp_ipi_name[msg], err);