aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/irq.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/kernel/irq.c')
-rw-r--r--arch/powerpc/kernel/irq.c64
1 files changed, 37 insertions, 27 deletions
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
index baa49eb93228..63e27d5c52de 100644
--- a/arch/powerpc/kernel/irq.c
+++ b/arch/powerpc/kernel/irq.c
@@ -187,33 +187,7 @@ int show_interrupts(struct seq_file *p, void *v)
187 for_each_online_cpu(j) 187 for_each_online_cpu(j)
188 seq_printf(p, "CPU%d ", j); 188 seq_printf(p, "CPU%d ", j);
189 seq_putc(p, '\n'); 189 seq_putc(p, '\n');
190 } 190 } else if (i == nr_irqs) {
191
192 if (i < NR_IRQS) {
193 desc = irq_to_desc(i);
194 spin_lock_irqsave(&desc->lock, flags);
195 action = desc->action;
196 if (!action || !action->handler)
197 goto skip;
198 seq_printf(p, "%3d: ", i);
199#ifdef CONFIG_SMP
200 for_each_online_cpu(j)
201 seq_printf(p, "%10u ", kstat_irqs_cpu(i, j));
202#else
203 seq_printf(p, "%10u ", kstat_irqs(i));
204#endif /* CONFIG_SMP */
205 if (desc->chip)
206 seq_printf(p, " %s ", desc->chip->typename);
207 else
208 seq_puts(p, " None ");
209 seq_printf(p, "%s", (desc->status & IRQ_LEVEL) ? "Level " : "Edge ");
210 seq_printf(p, " %s", action->name);
211 for (action = action->next; action; action = action->next)
212 seq_printf(p, ", %s", action->name);
213 seq_putc(p, '\n');
214skip:
215 spin_unlock_irqrestore(&desc->lock, flags);
216 } else if (i == NR_IRQS) {
217#if defined(CONFIG_PPC32) && defined(CONFIG_TAU_INT) 191#if defined(CONFIG_PPC32) && defined(CONFIG_TAU_INT)
218 if (tau_initialized){ 192 if (tau_initialized){
219 seq_puts(p, "TAU: "); 193 seq_puts(p, "TAU: ");
@@ -223,7 +197,43 @@ skip:
223 } 197 }
224#endif /* CONFIG_PPC32 && CONFIG_TAU_INT*/ 198#endif /* CONFIG_PPC32 && CONFIG_TAU_INT*/
225 seq_printf(p, "BAD: %10u\n", ppc_spurious_interrupts); 199 seq_printf(p, "BAD: %10u\n", ppc_spurious_interrupts);
200
201 return 0;
226 } 202 }
203
204 desc = irq_to_desc(i);
205 if (!desc)
206 return 0;
207
208 spin_lock_irqsave(&desc->lock, flags);
209
210 action = desc->action;
211 if (!action || !action->handler)
212 goto skip;
213
214 seq_printf(p, "%3d: ", i);
215#ifdef CONFIG_SMP
216 for_each_online_cpu(j)
217 seq_printf(p, "%10u ", kstat_irqs_cpu(i, j));
218#else
219 seq_printf(p, "%10u ", kstat_irqs(i));
220#endif /* CONFIG_SMP */
221
222 if (desc->chip)
223 seq_printf(p, " %s ", desc->chip->typename);
224 else
225 seq_puts(p, " None ");
226
227 seq_printf(p, "%s", (desc->status & IRQ_LEVEL) ? "Level " : "Edge ");
228 seq_printf(p, " %s", action->name);
229
230 for (action = action->next; action; action = action->next)
231 seq_printf(p, ", %s", action->name);
232 seq_putc(p, '\n');
233
234skip:
235 spin_unlock_irqrestore(&desc->lock, flags);
236
227 return 0; 237 return 0;
228} 238}
229 239