diff options
author | Wu Zhangjin <wuzhangjin@gmail.com> | 2010-03-09 13:27:12 -0500 |
---|---|---|
committer | Wu Zhangjin <wuzhangjin@gmail.com> | 2010-03-09 15:43:12 -0500 |
commit | cb7a435c2211b301598ded1ae051138b077b6eb9 (patch) | |
tree | 49a9d4dc07d79fc33f31904c1103275434ab2430 | |
parent | 1699e9f1ed3c9a63920bfe26fef22e8dd69a3fdf (diff) |
RT: MIPS: Un-thread several interrupts
This patch un-thread all of the interrupts whose handler is no_action,
which can return quickly, and also, several other interrupts, such as
bus error interrupt, halt interrupt, for they are urgent to the system,
to un-thread them too.
Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com>
-rw-r--r-- | arch/mips/ar7/irq.c | 3 | ||||
-rw-r--r-- | arch/mips/bcm63xx/irq.c | 1 | ||||
-rw-r--r-- | arch/mips/cobalt/irq.c | 1 | ||||
-rw-r--r-- | arch/mips/dec/setup.c | 4 | ||||
-rw-r--r-- | arch/mips/emma/markeins/irq.c | 2 | ||||
-rw-r--r-- | arch/mips/lasat/interrupt.c | 1 | ||||
-rw-r--r-- | arch/mips/mti-malta/malta-int.c | 6 | ||||
-rw-r--r-- | arch/mips/nxp/pnx8550/common/int.c | 2 | ||||
-rw-r--r-- | arch/mips/pmc-sierra/msp71xx/msp_irq.c | 5 | ||||
-rw-r--r-- | arch/mips/sgi-ip22/ip22-int.c | 10 | ||||
-rw-r--r-- | arch/mips/sni/rm200.c | 1 | ||||
-rw-r--r-- | arch/mips/vr41xx/common/irq.c | 1 |
12 files changed, 25 insertions, 12 deletions
diff --git a/arch/mips/ar7/irq.c b/arch/mips/ar7/irq.c index c781556c44e4..fce30eedcc66 100644 --- a/arch/mips/ar7/irq.c +++ b/arch/mips/ar7/irq.c | |||
@@ -97,7 +97,8 @@ static struct irq_chip ar7_sec_irq_type = { | |||
97 | 97 | ||
98 | static struct irqaction ar7_cascade_action = { | 98 | static struct irqaction ar7_cascade_action = { |
99 | .handler = no_action, | 99 | .handler = no_action, |
100 | .name = "AR7 cascade interrupt" | 100 | .name = "AR7 cascade interrupt", |
101 | .flags = IRQF_NODELAY, | ||
101 | }; | 102 | }; |
102 | 103 | ||
103 | static void __init ar7_irq_init(int base) | 104 | static void __init ar7_irq_init(int base) |
diff --git a/arch/mips/bcm63xx/irq.c b/arch/mips/bcm63xx/irq.c index a0c5cd18c192..3e60c9328e4b 100644 --- a/arch/mips/bcm63xx/irq.c +++ b/arch/mips/bcm63xx/irq.c | |||
@@ -234,6 +234,7 @@ static struct irq_chip bcm63xx_external_irq_chip = { | |||
234 | static struct irqaction cpu_ip2_cascade_action = { | 234 | static struct irqaction cpu_ip2_cascade_action = { |
235 | .handler = no_action, | 235 | .handler = no_action, |
236 | .name = "cascade_ip2", | 236 | .name = "cascade_ip2", |
237 | .flags = IRQF_NODELAY, | ||
237 | }; | 238 | }; |
238 | 239 | ||
239 | void __init arch_init_irq(void) | 240 | void __init arch_init_irq(void) |
diff --git a/arch/mips/cobalt/irq.c b/arch/mips/cobalt/irq.c index cb9bf820fe53..0cbd3b6e8d3b 100644 --- a/arch/mips/cobalt/irq.c +++ b/arch/mips/cobalt/irq.c | |||
@@ -48,6 +48,7 @@ asmlinkage void plat_irq_dispatch(void) | |||
48 | static struct irqaction cascade = { | 48 | static struct irqaction cascade = { |
49 | .handler = no_action, | 49 | .handler = no_action, |
50 | .name = "cascade", | 50 | .name = "cascade", |
51 | .flags = IRQF_NODELAY, | ||
51 | }; | 52 | }; |
52 | 53 | ||
53 | void __init arch_init_irq(void) | 54 | void __init arch_init_irq(void) |
diff --git a/arch/mips/dec/setup.c b/arch/mips/dec/setup.c index bd5431e1f408..61b8d9cd6d29 100644 --- a/arch/mips/dec/setup.c +++ b/arch/mips/dec/setup.c | |||
@@ -100,20 +100,24 @@ int cpu_fpu_mask = DEC_CPU_IRQ_MASK(DEC_CPU_INR_FPU); | |||
100 | static struct irqaction ioirq = { | 100 | static struct irqaction ioirq = { |
101 | .handler = no_action, | 101 | .handler = no_action, |
102 | .name = "cascade", | 102 | .name = "cascade", |
103 | .flags = IRQF_NODELAY, | ||
103 | }; | 104 | }; |
104 | static struct irqaction fpuirq = { | 105 | static struct irqaction fpuirq = { |
105 | .handler = no_action, | 106 | .handler = no_action, |
106 | .name = "fpu", | 107 | .name = "fpu", |
108 | .flags = IRQF_NODELAY, | ||
107 | }; | 109 | }; |
108 | 110 | ||
109 | static struct irqaction busirq = { | 111 | static struct irqaction busirq = { |
110 | .flags = IRQF_DISABLED, | 112 | .flags = IRQF_DISABLED, |
111 | .name = "bus error", | 113 | .name = "bus error", |
114 | .flags = IRQF_NODELAY, | ||
112 | }; | 115 | }; |
113 | 116 | ||
114 | static struct irqaction haltirq = { | 117 | static struct irqaction haltirq = { |
115 | .handler = dec_intr_halt, | 118 | .handler = dec_intr_halt, |
116 | .name = "halt", | 119 | .name = "halt", |
120 | .flags = IRQF_NODELAY, | ||
117 | }; | 121 | }; |
118 | 122 | ||
119 | 123 | ||
diff --git a/arch/mips/emma/markeins/irq.c b/arch/mips/emma/markeins/irq.c index 9504b7ee0b7c..acf3ca9383ef 100644 --- a/arch/mips/emma/markeins/irq.c +++ b/arch/mips/emma/markeins/irq.c | |||
@@ -182,7 +182,7 @@ void emma2rh_gpio_irq_init(void) | |||
182 | 182 | ||
183 | static struct irqaction irq_cascade = { | 183 | static struct irqaction irq_cascade = { |
184 | .handler = no_action, | 184 | .handler = no_action, |
185 | .flags = 0, | 185 | .flags = IRQF_NODELAY, |
186 | .name = "cascade", | 186 | .name = "cascade", |
187 | .dev_id = NULL, | 187 | .dev_id = NULL, |
188 | .next = NULL, | 188 | .next = NULL, |
diff --git a/arch/mips/lasat/interrupt.c b/arch/mips/lasat/interrupt.c index 1353fb135ed3..c8a4e0edef23 100644 --- a/arch/mips/lasat/interrupt.c +++ b/arch/mips/lasat/interrupt.c | |||
@@ -105,6 +105,7 @@ asmlinkage void plat_irq_dispatch(void) | |||
105 | static struct irqaction cascade = { | 105 | static struct irqaction cascade = { |
106 | .handler = no_action, | 106 | .handler = no_action, |
107 | .name = "cascade", | 107 | .name = "cascade", |
108 | .flags = IRQF_NODELAY, | ||
108 | }; | 109 | }; |
109 | 110 | ||
110 | void __init arch_init_irq(void) | 111 | void __init arch_init_irq(void) |
diff --git a/arch/mips/mti-malta/malta-int.c b/arch/mips/mti-malta/malta-int.c index 4c3fca18a171..b9855600ae8f 100644 --- a/arch/mips/mti-malta/malta-int.c +++ b/arch/mips/mti-malta/malta-int.c | |||
@@ -350,12 +350,14 @@ unsigned int plat_ipi_resched_int_xlate(unsigned int cpu) | |||
350 | 350 | ||
351 | static struct irqaction i8259irq = { | 351 | static struct irqaction i8259irq = { |
352 | .handler = no_action, | 352 | .handler = no_action, |
353 | .name = "XT-PIC cascade" | 353 | .name = "XT-PIC cascade", |
354 | .flags = IRQF_NODELAY, | ||
354 | }; | 355 | }; |
355 | 356 | ||
356 | static struct irqaction corehi_irqaction = { | 357 | static struct irqaction corehi_irqaction = { |
357 | .handler = no_action, | 358 | .handler = no_action, |
358 | .name = "CoreHi" | 359 | .name = "CoreHi", |
360 | .flags = IRQF_NODELAY, | ||
359 | }; | 361 | }; |
360 | 362 | ||
361 | static msc_irqmap_t __initdata msc_irqmap[] = { | 363 | static msc_irqmap_t __initdata msc_irqmap[] = { |
diff --git a/arch/mips/nxp/pnx8550/common/int.c b/arch/mips/nxp/pnx8550/common/int.c index 7aca7d5375e5..ca27dcb5b22c 100644 --- a/arch/mips/nxp/pnx8550/common/int.c +++ b/arch/mips/nxp/pnx8550/common/int.c | |||
@@ -166,7 +166,7 @@ static struct irq_chip level_irq_type = { | |||
166 | 166 | ||
167 | static struct irqaction gic_action = { | 167 | static struct irqaction gic_action = { |
168 | .handler = no_action, | 168 | .handler = no_action, |
169 | .flags = IRQF_DISABLED, | 169 | .flags = IRQF_DISABLED | IRQF_NODELAY, |
170 | .name = "GIC", | 170 | .name = "GIC", |
171 | }; | 171 | }; |
172 | 172 | ||
diff --git a/arch/mips/pmc-sierra/msp71xx/msp_irq.c b/arch/mips/pmc-sierra/msp71xx/msp_irq.c index 734d598a2e3a..704a60b05175 100644 --- a/arch/mips/pmc-sierra/msp71xx/msp_irq.c +++ b/arch/mips/pmc-sierra/msp71xx/msp_irq.c | |||
@@ -97,8 +97,9 @@ asmlinkage void plat_irq_dispatch(struct pt_regs *regs) | |||
97 | } | 97 | } |
98 | 98 | ||
99 | static struct irqaction cascade_msp = { | 99 | static struct irqaction cascade_msp = { |
100 | .handler = no_action, | 100 | .handler= no_action, |
101 | .name = "MSP cascade" | 101 | .name = "MSP cascade", |
102 | .flags = IRQF_NODELAY, | ||
102 | }; | 103 | }; |
103 | 104 | ||
104 | 105 | ||
diff --git a/arch/mips/sgi-ip22/ip22-int.c b/arch/mips/sgi-ip22/ip22-int.c index 383f11d7f442..18b1a2440697 100644 --- a/arch/mips/sgi-ip22/ip22-int.c +++ b/arch/mips/sgi-ip22/ip22-int.c | |||
@@ -163,32 +163,32 @@ static void __irq_entry indy_buserror_irq(void) | |||
163 | 163 | ||
164 | static struct irqaction local0_cascade = { | 164 | static struct irqaction local0_cascade = { |
165 | .handler = no_action, | 165 | .handler = no_action, |
166 | .flags = IRQF_DISABLED, | 166 | .flags = IRQF_DISABLED | IRQF_NODELAY, |
167 | .name = "local0 cascade", | 167 | .name = "local0 cascade", |
168 | }; | 168 | }; |
169 | 169 | ||
170 | static struct irqaction local1_cascade = { | 170 | static struct irqaction local1_cascade = { |
171 | .handler = no_action, | 171 | .handler = no_action, |
172 | .flags = IRQF_DISABLED, | 172 | .flags = IRQF_DISABLED | IRQF_NODELAY, |
173 | .name = "local1 cascade", | 173 | .name = "local1 cascade", |
174 | }; | 174 | }; |
175 | 175 | ||
176 | static struct irqaction buserr = { | 176 | static struct irqaction buserr = { |
177 | .handler = no_action, | 177 | .handler = no_action, |
178 | .flags = IRQF_DISABLED, | 178 | .flags = IRQF_DISABLED | IRQF_NODELAY, |
179 | .name = "Bus Error", | 179 | .name = "Bus Error", |
180 | }; | 180 | }; |
181 | 181 | ||
182 | static struct irqaction map0_cascade = { | 182 | static struct irqaction map0_cascade = { |
183 | .handler = no_action, | 183 | .handler = no_action, |
184 | .flags = IRQF_DISABLED, | 184 | .flags = IRQF_DISABLED | IRQF_NODELAY, |
185 | .name = "mapable0 cascade", | 185 | .name = "mapable0 cascade", |
186 | }; | 186 | }; |
187 | 187 | ||
188 | #ifdef USE_LIO3_IRQ | 188 | #ifdef USE_LIO3_IRQ |
189 | static struct irqaction map1_cascade = { | 189 | static struct irqaction map1_cascade = { |
190 | .handler = no_action, | 190 | .handler = no_action, |
191 | .flags = IRQF_DISABLED, | 191 | .flags = IRQF_DISABLED | IRQF_NODELAY, |
192 | .name = "mapable1 cascade", | 192 | .name = "mapable1 cascade", |
193 | }; | 193 | }; |
194 | #define SGI_INTERRUPTS SGINT_END | 194 | #define SGI_INTERRUPTS SGINT_END |
diff --git a/arch/mips/sni/rm200.c b/arch/mips/sni/rm200.c index 31e2583ec622..8a0bb587c1db 100644 --- a/arch/mips/sni/rm200.c +++ b/arch/mips/sni/rm200.c | |||
@@ -361,6 +361,7 @@ void sni_rm200_init_8259A(void) | |||
361 | static struct irqaction sni_rm200_irq2 = { | 361 | static struct irqaction sni_rm200_irq2 = { |
362 | .handler = no_action, | 362 | .handler = no_action, |
363 | .name = "cascade", | 363 | .name = "cascade", |
364 | .flags = IRQF_NODELAY, | ||
364 | }; | 365 | }; |
365 | 366 | ||
366 | static struct resource sni_rm200_pic1_resource = { | 367 | static struct resource sni_rm200_pic1_resource = { |
diff --git a/arch/mips/vr41xx/common/irq.c b/arch/mips/vr41xx/common/irq.c index bef06872f012..e16b1c87b30d 100644 --- a/arch/mips/vr41xx/common/irq.c +++ b/arch/mips/vr41xx/common/irq.c | |||
@@ -33,6 +33,7 @@ static irq_cascade_t irq_cascade[NR_IRQS] __cacheline_aligned; | |||
33 | static struct irqaction cascade_irqaction = { | 33 | static struct irqaction cascade_irqaction = { |
34 | .handler = no_action, | 34 | .handler = no_action, |
35 | .name = "cascade", | 35 | .name = "cascade", |
36 | .flags = IRQF_NODELAY, | ||
36 | }; | 37 | }; |
37 | 38 | ||
38 | int cascade_irq(unsigned int irq, int (*get_irq)(unsigned int)) | 39 | int cascade_irq(unsigned int irq, int (*get_irq)(unsigned int)) |