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 6df70907d60aba5cf244c5dade8ea007bc30425d..f0abe92f63f2d811ce4a9eb926eb447905431b54 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 9b6a820bdd7dccb7f618f325206eec324b058d95..e6f7378f4a49240720d2a1ce5aebbd043af6ef10 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 63762c672a0372b7f2eb5469c85c63cd5617402a..d72eda6a4c055dcd84c1347525b727998da252fb 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)