powerpc: Mark IPI interrupts IRQF_NO_THREAD
authorThomas Gleixner <tglx@linutronix.de>
Wed, 5 Oct 2011 02:30:50 +0000 (02:30 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 25 Nov 2011 03:14:38 +0000 (14:14 +1100)
IPI handlers cannot be threaded. Remove the obsolete IRQF_DISABLED
flag (see commit e58aa3d2) while at it.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/kernel/smp.c
arch/powerpc/platforms/powermac/smp.c
arch/powerpc/sysdev/xics/xics-common.c

index 6df7090..f0abe92 100644 (file)
@@ -187,7 +187,8 @@ int smp_request_message_ipi(int virq, int msg)
                return 1;
        }
 #endif
-       err = request_irq(virq, smp_ipi_action[msg], IRQF_PERCPU,
+       err = request_irq(virq, smp_ipi_action[msg],
+                         IRQF_PERCPU | IRQF_NO_THREAD,
                          smp_ipi_name[msg], 0);
        WARN(err < 0, "unable to request_irq %d for %s (rc %d)\n",
                virq, smp_ipi_name[msg], err);
index 9b6a820..e6f7378 100644 (file)
@@ -200,7 +200,7 @@ static int psurge_secondary_ipi_init(void)
 
        if (psurge_secondary_virq)
                rc = request_irq(psurge_secondary_virq, psurge_ipi_intr,
-                       IRQF_PERCPU, "IPI", NULL);
+                       IRQF_PERCPU | IRQF_NO_THREAD, "IPI", NULL);
 
        if (rc)
                pr_err("Failed to setup secondary cpu IPI\n");
@@ -408,7 +408,7 @@ static int __init smp_psurge_kick_cpu(int nr)
 
 static struct irqaction psurge_irqaction = {
        .handler = psurge_ipi_intr,
-       .flags = IRQF_PERCPU,
+       .flags = IRQF_PERCPU | IRQF_NO_THREAD,
        .name = "primary IPI",
 };
 
index 63762c6..d72eda6 100644 (file)
@@ -137,7 +137,7 @@ static void xics_request_ipi(void)
         * IPIs are marked IRQF_PERCPU. The handler was set in map.
         */
        BUG_ON(request_irq(ipi, icp_ops->ipi_action,
-                          IRQF_PERCPU, "IPI", NULL));
+                          IRQF_PERCPU | IRQF_NO_THREAD, "IPI", NULL));
 }
 
 int __init xics_smp_probe(void)