aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWu Zhangjin <wuzhangjin@gmail.com>2010-03-09 13:27:12 -0500
committerWu Zhangjin <wuzhangjin@gmail.com>2010-03-09 15:43:12 -0500
commitcb7a435c2211b301598ded1ae051138b077b6eb9 (patch)
tree49a9d4dc07d79fc33f31904c1103275434ab2430
parent1699e9f1ed3c9a63920bfe26fef22e8dd69a3fdf (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.c3
-rw-r--r--arch/mips/bcm63xx/irq.c1
-rw-r--r--arch/mips/cobalt/irq.c1
-rw-r--r--arch/mips/dec/setup.c4
-rw-r--r--arch/mips/emma/markeins/irq.c2
-rw-r--r--arch/mips/lasat/interrupt.c1
-rw-r--r--arch/mips/mti-malta/malta-int.c6
-rw-r--r--arch/mips/nxp/pnx8550/common/int.c2
-rw-r--r--arch/mips/pmc-sierra/msp71xx/msp_irq.c5
-rw-r--r--arch/mips/sgi-ip22/ip22-int.c10
-rw-r--r--arch/mips/sni/rm200.c1
-rw-r--r--arch/mips/vr41xx/common/irq.c1
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
98static struct irqaction ar7_cascade_action = { 98static 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
103static void __init ar7_irq_init(int base) 104static 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 = {
234static struct irqaction cpu_ip2_cascade_action = { 234static 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
239void __init arch_init_irq(void) 240void __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)
48static struct irqaction cascade = { 48static 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
53void __init arch_init_irq(void) 54void __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);
100static struct irqaction ioirq = { 100static struct irqaction ioirq = {
101 .handler = no_action, 101 .handler = no_action,
102 .name = "cascade", 102 .name = "cascade",
103 .flags = IRQF_NODELAY,
103}; 104};
104static struct irqaction fpuirq = { 105static 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
109static struct irqaction busirq = { 111static 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
114static struct irqaction haltirq = { 117static 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
183static struct irqaction irq_cascade = { 183static 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)
105static struct irqaction cascade = { 105static 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
110void __init arch_init_irq(void) 111void __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
351static struct irqaction i8259irq = { 351static 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
356static struct irqaction corehi_irqaction = { 357static 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
361static msc_irqmap_t __initdata msc_irqmap[] = { 363static 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
167static struct irqaction gic_action = { 167static 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
99static struct irqaction cascade_msp = { 99static 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
164static struct irqaction local0_cascade = { 164static 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
170static struct irqaction local1_cascade = { 170static 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
176static struct irqaction buserr = { 176static 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
182static struct irqaction map0_cascade = { 182static 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
189static struct irqaction map1_cascade = { 189static 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)
361static struct irqaction sni_rm200_irq2 = { 361static 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
366static struct resource sni_rm200_pic1_resource = { 367static 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;
33static struct irqaction cascade_irqaction = { 33static 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
38int cascade_irq(unsigned int irq, int (*get_irq)(unsigned int)) 39int cascade_irq(unsigned int irq, int (*get_irq)(unsigned int))