MIPS: Mark cascade and low level interrupts IRQF_NO_THREAD
authorWu Zhangjin <wuzhangjin@gmail.com>
Sat, 23 Jul 2011 12:41:24 +0000 (12:41 +0000)
committerRalf Baechle <ralf@linux-mips.org>
Wed, 21 Sep 2011 15:52:15 +0000 (17:52 +0200)
Mark interrupts with no_action handler, cascade interrupts, low level
interrupts (bus error, halt ..) with IRQF_NO_THREAD to exclude them
from forced threading.

Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-mips@linux-mips.org
Cc: Wu Zhangjin <wuzhangjin@gmail.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
12 files changed:
arch/mips/ar7/irq.c
arch/mips/bcm63xx/irq.c
arch/mips/cobalt/irq.c
arch/mips/dec/setup.c
arch/mips/emma/markeins/irq.c
arch/mips/lasat/interrupt.c
arch/mips/mti-malta/malta-int.c
arch/mips/pmc-sierra/msp71xx/msp_irq.c
arch/mips/pnx8550/common/int.c
arch/mips/sgi-ip22/ip22-int.c
arch/mips/sni/rm200.c
arch/mips/vr41xx/common/irq.c

index 03db3daadbd8f95524783ae7c802e9524e9fb346..88c4babfdb5d491dd151906f20d3c5df068f946c 100644 (file)
@@ -98,7 +98,8 @@ static struct irq_chip ar7_sec_irq_type = {
 
 static struct irqaction ar7_cascade_action = {
        .handler = no_action,
-       .name = "AR7 cascade interrupt"
+       .name = "AR7 cascade interrupt",
+       .flags = IRQF_NO_THREAD,
 };
 
 static void __init ar7_irq_init(int base)
index cea6021cb8d7a3172976bd1a8c7b378b41331c93..162e11b4ed755f7e227d4cfc485d40170716abdf 100644 (file)
@@ -222,6 +222,7 @@ static struct irq_chip bcm63xx_external_irq_chip = {
 static struct irqaction cpu_ip2_cascade_action = {
        .handler        = no_action,
        .name           = "cascade_ip2",
+       .flags          = IRQF_NO_THREAD,
 };
 
 void __init arch_init_irq(void)
index cb9bf820fe53b4640a7b72264be61deacf998fa7..965c777d356132df575aa6f42534a58b17443415 100644 (file)
@@ -48,6 +48,7 @@ asmlinkage void plat_irq_dispatch(void)
 static struct irqaction cascade = {
        .handler        = no_action,
        .name           = "cascade",
+       .flags          = IRQF_NO_THREAD,
 };
 
 void __init arch_init_irq(void)
index fa45e924be05b9e40cf9d23b5a6a866034dfb8f3..f7b7ba6d5c45f589951f301bca6f29bc1e8bacba 100644 (file)
@@ -101,20 +101,24 @@ int cpu_fpu_mask = DEC_CPU_IRQ_MASK(DEC_CPU_INR_FPU);
 static struct irqaction ioirq = {
        .handler = no_action,
        .name = "cascade",
+       .flags = IRQF_NO_THREAD,
 };
 static struct irqaction fpuirq = {
        .handler = no_action,
        .name = "fpu",
+       .flags = IRQF_NO_THREAD,
 };
 
 static struct irqaction busirq = {
        .flags = IRQF_DISABLED,
        .name = "bus error",
+       .flags = IRQF_NO_THREAD,
 };
 
 static struct irqaction haltirq = {
        .handler = dec_intr_halt,
        .name = "halt",
+       .flags = IRQF_NO_THREAD,
 };
 
 
index 3dbd7a5a6ad33f5ab8335c0c45d84f235adb9d01..7798887a1288a7fc529e29d536287536a6dd628b 100644 (file)
@@ -169,7 +169,7 @@ void emma2rh_gpio_irq_init(void)
 
 static struct irqaction irq_cascade = {
           .handler = no_action,
-          .flags = 0,
+          .flags = IRQF_NO_THREAD,
           .name = "cascade",
           .dev_id = NULL,
           .next = NULL,
index de4c165515d780571712c81e9e641c9a31728c8c..d608b6ef0edd7712aa9d34c5668d2590a8e3a962 100644 (file)
@@ -105,6 +105,7 @@ asmlinkage void plat_irq_dispatch(void)
 static struct irqaction cascade = {
        .handler        = no_action,
        .name           = "cascade",
+       .flags          = IRQF_NO_THREAD,
 };
 
 void __init arch_init_irq(void)
index 1d36c511a7a5951c227800f917dd815449baf064..d53ff91b277c8f358a96058ddffada9901345ba1 100644 (file)
@@ -350,12 +350,14 @@ unsigned int plat_ipi_resched_int_xlate(unsigned int cpu)
 
 static struct irqaction i8259irq = {
        .handler = no_action,
-       .name = "XT-PIC cascade"
+       .name = "XT-PIC cascade",
+       .flags = IRQF_NO_THREAD,
 };
 
 static struct irqaction corehi_irqaction = {
        .handler = no_action,
-       .name = "CoreHi"
+       .name = "CoreHi",
+       .flags = IRQF_NO_THREAD,
 };
 
 static msc_irqmap_t __initdata msc_irqmap[] = {
index 4531c4a514bc499b2dedfbe9bf497149a39947df..42a4c04e21d545b83ea6ab4dc8dbe671cd434608 100644 (file)
@@ -109,11 +109,13 @@ asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
 static struct irqaction cic_cascade_msp = {
        .handler = no_action,
        .name    = "MSP CIC cascade"
+       .flags   = IRQF_NO_THREAD,
 };
 
 static struct irqaction per_cascade_msp = {
        .handler = no_action,
        .name    = "MSP PER cascade"
+       .flags   = IRQF_NO_THREAD,
 };
 
 void __init arch_init_irq(void)
index 6b93c81779c1a6166ca0a5ead00f81b1632badd4..1ebe22bdadc87668c35587687434af376876bafc 100644 (file)
@@ -167,7 +167,7 @@ static struct irq_chip level_irq_type = {
 
 static struct irqaction gic_action = {
        .handler =      no_action,
-       .flags =        IRQF_DISABLED,
+       .flags =        IRQF_DISABLED | IRQF_NO_THREAD,
        .name =         "GIC",
 };
 
index b4d08e4d2ea949b6818f8bac47d2f7576d516918..f72c336ea27b3b059ca4c6a169e3b1cefce23d47 100644 (file)
@@ -155,32 +155,32 @@ static void __irq_entry indy_buserror_irq(void)
 
 static struct irqaction local0_cascade = {
        .handler        = no_action,
-       .flags          = IRQF_DISABLED,
+       .flags          = IRQF_DISABLED | IRQF_NO_THREAD,
        .name           = "local0 cascade",
 };
 
 static struct irqaction local1_cascade = {
        .handler        = no_action,
-       .flags          = IRQF_DISABLED,
+       .flags          = IRQF_DISABLED | IRQF_NO_THREAD,
        .name           = "local1 cascade",
 };
 
 static struct irqaction buserr = {
        .handler        = no_action,
-       .flags          = IRQF_DISABLED,
+       .flags          = IRQF_DISABLED | IRQF_NO_THREAD,
        .name           = "Bus Error",
 };
 
 static struct irqaction map0_cascade = {
        .handler        = no_action,
-       .flags          = IRQF_DISABLED,
+       .flags          = IRQF_DISABLED | IRQF_NO_THREAD,
        .name           = "mapable0 cascade",
 };
 
 #ifdef USE_LIO3_IRQ
 static struct irqaction map1_cascade = {
        .handler        = no_action,
-       .flags          = IRQF_DISABLED,
+       .flags          = IRQF_DISABLED | IRQF_NO_THREAD,
        .name           = "mapable1 cascade",
 };
 #define SGI_INTERRUPTS SGINT_END
index a7e5a6d917b1572c283903729f7f495f3fb334f0..3ab5b5d25b0acca9aeeb2c3306a38af4b8637d89 100644 (file)
@@ -359,6 +359,7 @@ void sni_rm200_init_8259A(void)
 static struct irqaction sni_rm200_irq2 = {
        .handler = no_action,
        .name = "cascade",
+       .flags = IRQF_NO_THREAD,
 };
 
 static struct resource sni_rm200_pic1_resource = {
index 70a3b85f37576dcc8ac6ad8f68155c79c5ae747b..fad2bef432cdd94ad509fe2d6b45d74ee36d3661 100644 (file)
@@ -34,6 +34,7 @@ static irq_cascade_t irq_cascade[NR_IRQS] __cacheline_aligned;
 static struct irqaction cascade_irqaction = {
        .handler        = no_action,
        .name           = "cascade",
+       .flags          = IRQF_NO_THREAD,
 };
 
 int cascade_irq(unsigned int irq, int (*get_irq)(unsigned int))